1.1基本概念和常用术语
数据:描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。
数据元素:数据的基本单位。
数据对象:具有相同性质的数据元素的集合,是数据的一个子集。
1.2数据结构包含的内容
数据结构:带有结构的数据元素的集合,其中结构中的数据元素就是节点。
数据结构一般包括一下三方面:
(1)数据元素之间的逻辑关系,即:数据的逻辑结构。
数据的逻辑结构又分为两种:
1)线性结构:数据元素(节点)之间存在一对一的关系。
2)非线性结构:数据元素之间存在一对多或者多对多的关系。
(2)数据元素及其关系在计算机的存储方式,就是数据的储存结构(物理结构)。
数据结构的储存方法:
1)顺序储存方法:把逻辑相连的节点储存在物理位置上也相邻的连续储存单元里,线性的数据结构。
2)链接存储方法:用一组不一定连续的储存单元储存上逻辑相邻的元素,元素之间逻辑关系是由附加的指针域表示。
3)素银储存方法:在储存元素信息的同时,建立附加的索引表。
4)散列储存方法:根据关键字直接计算出该元素的储存地址
(3)数据的运算,即对数据元素施加的操作
运算方式:检索();插入();删除();更新();排序()
1.3算法的描述与分析
1.3.1算法描述
五个准则:
输入
输出
有穷性
确定性
可行性
1.3.2算法的分析
评价算法的因素:
执行算法所需的时间,即时间复杂性;
执行算法耗费的储存空间,主要是辅助空间,即空间复杂性;
算法应易于理解、易于编程、易于调试等,即可续行和可操作性。
算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记为:T(n)=O(f(n))
典型的增长率
量度 | 所属函数 |
---|---|
O(C) | 常数 |
O(log(N)) | 对数 |
O(logC(N)) | 多对数 |
O(N) | 线性 |
O(N log(N)) | 线性对数 |
O(N^2) | 平方 |
O(N^c) | 多项式 |
O(C^N) | 指数 |
O(O(N!)) | 阶乘 |
O(O(N^N)) | 指数(超几何) |