数据结构和算法 | 入门介绍

Posted dotzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构和算法 | 入门介绍相关的知识,希望对你有一定的参考价值。

阅读文本大概需要 2 分钟。


本篇是对数据结构和算法的介绍。


数据结构和算法简介

数据结构是一种收集和组织数据的方式,我们可以以有效的方式对这些数据执行操作。数据结构是关于根据某种关系呈现数据元素,以便更好地组织和存储。例如,我们有一些数据,其中包含用户的名字,“funnyZhang”和 22 岁。这里 “funnyZhang” 是 String 数据类型,22 是整数数据类型。


我们可以将这些数据组织为一类用户记录,这样的记录其中包含用户的姓名和年龄。比如可以将文件或数据库中的用户记录收集并存储为数据结构。 例如:“funnyZhang”:22,“Tom”:25,“Alis”:33。


如果我们已经了解了面向对象的编程概念,那么类(class)也会做同样的事情,它会在一个实体下收集不同类型的数据。唯一的区别是,数据结构提供了有效访问和操作数据的技术。


在简单语言中,数据结构是被编程为存储有序数据的结构,因此可以容易地对其执行各种操作。它代表了要在内存中组织的数据的知识,数据结构的提出是为了降低复杂性并提高效率。


数据结构的基本类型

任何可以存储数据的东西都可以称为数据结构,比如:Integer,Float,Boolean,Char 等都是数据结构,这些被称为原始数据结构。


还有一些复杂的数据结构,用于存储大型和连接的数据。比如:链表,树,图,栈,队列等。


所有这些数据结构允许我们对数据执行不同的操作,我们可以根据所需的操作类型选择这些数据结构。



数据结构可以大致分为六类

1. 线性数据结构

在线性数据结构中,数据项以线性顺序排列。例如:数组。


2. 非线性数据结构

在非线性数据结构中,数据项不是按顺序排列的。例如:树,图。

3. 同类型

在同类型的数据结构中,所有元素都是相同类型的,比如:数组。


4. 非同类型

在非同类型的数据结构中,其中的元素类型可以相同也可以不相同。比如:结构


5. 静态数据结构

静态数据结构是那些在编译时其大小和结构相关的存储器位置是固定的结构,比如:数组。


6. 动态数据结构

动态结构是根据程序需要及其执行而扩展或缩小的结构。此外,它们的相关内存位置也会发生。比如:使用指针创建的链表。


什么是算法?

算法是按顺序编写的有限指令集,以完成某个预定义任务。算法不是完整的代码或程序,它只是问题的核心逻辑(解决方案),可以表示为伪代码的非正式高级描述或使用流程图。


每个算法都必须满足以下几点

1. 输入,可以有 0 个或者多个输入。

2. 输出,至少要有一个输出。

3. 确定性,每一步都是确定的。

4. 有限性,算法应该具有有限的步骤。

5. 正确性,有正确的输出。


如果算法执行时间较短并且占用较少的内存空间,则称算法是高效且快速的。算法的性能可以从以下两个指标来进行度量。

1. 时间复杂度

2. 空间复杂度


时间复杂度

时间复杂度是表示程序运行直到完成所需时间的一种方式。尝试将所需时间保持在最小值通常是一种很好的做法,这样我们的算法就能在最短的时间内完成它的执行。


空间复杂度

它在执行过程中算法所需的内存空间,对于多用户系统以及可用内存有限的情况,必须认真考虑空间复杂度。



funnyZhang,工科男

一条迷途的咸鱼,正在游向属于它的天地

恰同学少年风华正茂,数风流人物还看今朝


长按二维码关注funnyZhang

以上是关于数据结构和算法 | 入门介绍的主要内容,如果未能解决你的问题,请参考以下文章

信用评分卡模型入门(智能算法)

数据结构算法入门--链表(文末有红包抽奖)

数据结构与算法(C#)入门 --- 串和数组

算法入门

数据结构是编程人的痛点,今天我来教大家如何自学入门!

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习JavaScript数据结构与算法第3版》