一 :基本概念
1. 数据结构的基本概念:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
用通俗一点的语言来说就是研究数据元素之间特有的关系。
2.算法的基本概念: 是解决一系列问题的清晰,完整的指令。可以类比于高中数学解题中的一个个详细的步骤。
二: 数据结构的分类
数据结构分为两类: 1. 数据结构的存储结构 2. 数据结构的逻辑结构
1.什么是数据结构的存储结构:是指数据元素及其逻辑关系在存储器上的存放形式。
2.什么是数据结构的逻辑结构:是指反映数据元素之间的逻辑关系。这种关系是人为解决某些问题而构想出来的。
3.数据结构存储结构的分类:
一:顺序存储结构:在物理内存或者逻辑内存上获得一块连续的区域,将数据存储在这块连续的一块区域中。
二:链式存储结构:不要求相邻结点存储之间的内存是连续的。通过本结点的指针域指向下一个结点所对应的地址,
进而找到下一个结点的数据域。
PS: 顺序储存结构和链式存储结构的各自优点:
链式存储适用于在较频繁地插入、删除元素时,而顺序存储结构适用于频繁查询数据的使用。
三:索引存储结构:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干索引项组成。
四:散列存储结构: 散列存储,又称hash存储,一种将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。
4.数据结构逻辑结构的分类:
一.线性结构:数组 链表 栈 队列
二.非线性结构:集合 树结构 图结构
三:算法的五大特点:(有确出入行)
1.有穷性:有穷性是算法必须在有限个步骤完成之后终止。
2.确定性:确定性是算法的每个步骤都必须要有确切的含义。
3.输入性:输入性是算法需要有0个或者多个输入,用来刻画算法的初值。
4.输出性:输出性是相对应算法的输入性,对输入的数据进行加工和处理后所输出的数据,至少有一个或者多个输出。
5.可行性:可行性是算法要能够进行每一步的精确执行而不发生错误。
例题1:
以下特征中,( )不是算法的特性。
A.有穷性
B.确定性
C.0个或者多个输出
D.可行性 选C。解析:输出为1个或多个输出。
例题2:
算法的特点中不包括( )
A.有穷性
B.健壮性
C.确定性
D.输入和输出 选B。解析:算法的健壮性属于算法的设计目标(如下所述),不属于它的特点。
四.算法设计五大目标
1.正确性:顾名思义,算法的设计不能是错误的。
2.可读性:可读性是指算法设计要便于人类理解和阅读。
3.健壮性:健壮性是指当算法发生错误时,要有一定的处理不可预料错误的能力。通俗地说就是算法自己本身的容错率。
4.高时间效率:算法的时间效率是算法的执行时间。
5.高空间效率:算法的空间效率四算法执行所用的内存空间。
五.算法的时间复杂度和空间复杂度
1.算法时间复杂度(算法时间效率):用来表示算法执行的时间。通常用「 大O符号表示法 」,即 T(n) = O(f(n))。
2.算法空间复杂度(算法空间效率):用来表示算法所占据的内存空间。
两者总结:通常来说时间复杂度和空间复杂度是相互制约。当追求一个好的时间复杂度时,可能会使空间复杂度性能变差。当追 求一个好的空间复杂度时,可能会使时间复杂度性能下降。就是我们常用说的用空间换取时间或者用时间换取空间。