今天先发一些数据结构的基本概念和术语
数据
数据元素(是数据的基本单位):指的是一个结点的记录。比如一张成绩表里,一个学生的学号,成绩,性别等合起来就是一个数据元素。
数据项(数据不可分割的在最小单位):如上一个学生的学号就是一个数据项
数据结构:相互之间存在一种或多种特定关系的数据元素的集合
4类基本结构:a.集合 b.线性结构 c.树形结构 d.图状结构或网状结构
逻辑结构:只反映数据元素之间的逻辑关系(是抽象的)
物理结构:数据结构在计算机里的表示
【重点】逻辑结构与物理结构的关系
1.物理结构是其逻辑结构在RAM中的映像
2.算法设计思想依赖于逻辑结构
而算法的实现依赖于所采用的存储结构
算法(程序是算法,但算法不一定是程序)
5个重要特性:有穷性(有穷步,有穷时间内完成)、确定性(唯一一条执行路径)、可行性(能实现)、输入(零个或多个)、输出(一个或多个)
设计要求:a.正确性(不解释) b.可读性(算法主要是与人交流,所以要写上必要的注释) c.健壮性(对非法的输入有适当的反应)(尤其在边界问题上要考虑算法的
健壮性,以后再说)
【重点】算法的时间复杂度:
T(n)=O(f(n)) //O是一个数学符号,当n趋向于无穷时,是f(n)/g(n)是常数,则f(n)与g(n)同阶,一般来说,一个函数的增长速度与该函数的最高次同
阶。
算法的时间复杂性与问题规模和序列的初始值有关,若与初始值有关则时间复杂度按最坏情况考虑