1、数据结构
当今计算机应用的特点:计算机应用领域从科学计算到非数值计算。
数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。不仅包括数字、字符串,还包括图
形、图像、声音、动画、视频等数据形式。
数据元素:数据的基本单位,也称结点(node)或记录(record)。
数据项:是数据结构中讨论的最小单位。一个数据元素可由若干数据项组成。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素集合。
2、逻辑结构
数据结构中所说的“关系”实际上是指数据元素之间的逻辑关系,又称为逻辑结构。
关系分类:
集合数据元素间除“同属于一个集合”外,无其他关系。
线性结构一对一的关系,如线性表、栈、队列
树型结构一对多的关系,如树
图状结构或网状结构多对多的关系。
3、存储结构(物理结构)
分两种:顺序存储结构和链式存储结构。
顺序存储结构:借助元素在存储器中的相对位置来表示,数据元素之间的逻辑关系。(占连续的存储单
元)。
链式存储结构:借助指示存储地址的指针表示数据元素间的逻辑关系(可以占用不连续的存储单元)。
4、数据结构的运算(插入、删除、修改、查找、排序)
5、算法的设计过程
满足的五个重要特征:
<1、有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
<2、确定性:算法的每一步必须确切定义的,不能产生二义性。
<3、可行性:算法是能够实现的。即算法描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
<4、有输入:一个算法有零个或多个输入。
<5、有输出:一个算法有零个或多个输出。
考虑达到的目标:
<1、正确性2、可读性3、健壮性4高效率与低存储量需求
两种衡量算法效率的方法:
事后统计法和事前分析估算法(时间复杂度和空间复杂度)
时间复杂度0(n):是执行行算法所需的计算工作量。
算法的工作量可以用算法所执行的基本运算次数来度量。
算法的时间复杂度记做:T(n)=O(f(n))
空间复杂度S(n):一般是指执行这个算法所需要的内存空间。
算法的时间复杂度是由嵌套最深层语句的频度决定的。
若输入数据所占空间和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。