笔记目录
1.1~1.4-数据结构基础概念和时间复杂度
2.1~2.8-顺序表、链表
6.4 -图的储存结构与创建
1.1~1.4数据结构基础概念
已学过的概念总结
具体如图、树,分解具体总结
1.1数据结构的研究内容——对数据合理组织、高效处理
1.2基本概念和术语
数据 Data
输入计算机,并被处理的符号集合
例如:人类 通过编码变成数据来处理
数据元素 Data Element
组成数据的基本单位
例如: 人
数据项 Data Item
组成数据元素的最小、‘不可分割’单元
例如:人身上的细胞
数据对象Data Object
相同性质的数据元素的集合
例如:黄种人
1.3数据结构Data structure
相互之间存在一种或多种关系的数据元素的集合
逻辑结构
线性 | 非线性 |
---|---|
线性表 | 树、二叉树 |
链表 | 有向图 |
栈 | 无向图 |
队列 | 集合 |
字符串 | |
数组 | |
广义表 |
抽象数据类型
Abstract Data Type
ADT 抽象数据类型名
{
数据对象:{}
数据关系:{}
基本操作:
create(x,y)
操作结果:创建…
…
}
ADT 抽象数据类型名
1.4算法时间复杂度
计算方法:
1、加法常数用1取代
2、常系数也用1取代
3、只保留最高阶
执行次数 | 计算方法 | 非正式术语 | 大O表示 |
---|---|---|---|
12 | 常数用1 | 常数阶 | O(1) |
2n+3 | 保留最高,系数换为1 | 线性阶 | O(n) |
2n2+3 | 保留最高,系数换为1 | 平方阶 | O(n2) |
3n3+2n+3 | 保留最高,系数换为1 | 立方阶 | O(n3) |
3log2n | 系数换为1 | 对数阶 | O(log2n) |
3nlog2n | 常系数换为1(n不替换) | 对数阶 | O(nlog2n) |
2n | 指数阶 | O(2n) |
计算举例:
//O(1)
x=90;y=100;
while(y>0)
if(x>100)
{x=x-10;y--}
else x++;
//O(mn)
for(i=0;i<n;i++)
for(j=0;j<m;j++)
//O(log~2~n)
while(i<n)
i=i*3;
//O(genhao n)
x=n;//n>1
y=0;
while(x<=y*y)
y++;