一、术语
数据:是信息的载体,能被计算机识别、存储、加工处理。
数据元素:数据的基本单位,即数据集合中的一个个体。也称元素、结点、顶点、记录。
数据项:是具有独立含义的最小标识单位。如一条记录信息中每一项(例如姓名、学号)。
关键字:唯一能识别一个数据元素的数据项。
数据类型:是具有相同性质的计算机数据的集合及在这个集合上的一组操作。(原子数据类型、结构数据类型、抽象数据类型)
数据结构:包括数据的逻辑结构、数据的存储结构和数据的运算;存在一种或多种特定关系的数据元素的集合。
逻辑结构:可直接称为数据结构
- 线性结构:线性表、栈、队列、串(最多只有一个直接前趋和一个直接后继)
- 非线性结构:树、图、多维数组、广义表
- 逻辑结构与数据元素本身的形式、内容无关;逻辑结构与数据元素的相对位置无关;逻辑结构与所含结点个数无关。
存储结构:
- 顺序存储方法:数据元素在内存中按序连接存储。结点间的逻辑关系由存储单元的领接关系来体现。
- 链接存储方法:用指针指出其直接后继结点的存储位置,结点间的逻辑关系由存储单元的领接关系来体现。
- 索引存储方法:数据元素连续存放,建立一个索引表。
- 散列存储方法:确定散列函数后,根据结点的关键字直接计算出该结点的存储地址。
算法:算法是对特定问题求解步骤的一种描述;由有限的指令序列构成,其中每一条指令表示一个或多个操作。算法的五个特性如下:
- 输入:一个算法有零个或多个的输入 ,它们是算法最开始前给出的最初量
- 输出:一个算法至少有一个输出,它们是同输入有某种关系的量
- 有穷性:每一条指令的执行次数必须是有限的
- 确定性:每一条指令必须有确切的含义,无二义性
- 可行性:每一条指令的执行时间都是有限的
算法设计的要求:
- 正确性:算法应满足具体问题的需求;
- 可读性:主要便于阅读,其次机器执行;
- 健壮性:输入非法数据时可适当做出反映或进行处理,不产生莫名其妙的结果。
- 效率与低存储量要求。
如何评价算法的好坏:算法的时间复杂度(取决于问题的规模和待处理数据的初态)和算法的空间复杂度。