摘要
基本概念
- 数据
- 数据元素:可有若干数据项组成
- 数据对象:相同性质数据元素的集合
- 数据类型
- 原子类型
- 结构类型
- 抽象数据类型:抽象数据组织和与之相关的操作。可以用来定义一个完整的数据结构
- 抽象数据类型(ADT):通常包含数据对象,数据关系,基本操作
- 数据结构:三要素:逻辑结构,存储结构和数据的运算
- 逻辑结构:线性结构和非线性结构
- 存储结构:
- 顺序存储:优:随机存储,缺:外部碎片
- 链接存储:优:没有碎片,缺:只能顺序存储
- 索引存储:优:检索速度快,缺:附加索引表
- 散列存储:优:Hash存储,缺:存储冲突
数据的运算:定义是针对逻辑结构进行的,实现是针对存储结构的
注意点
- 链式存储设计时,节点内的存储单元地址一定是连续的
算法以及算法评价
算法
- 5个特性
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
- 5个特性
算法效率的度量
时间复杂度
- 类别: 最好时间、平均时间、最坏时间
- 加法规则: T(n) = T1(n)+T2(n) = O(f(n))+O(g(n)) = O(max(f(n),g(n))
- 乘法规则: T(n) = T1(n)T2(n) = O(f(n))+O(g(n)) = O(f(n)g(n))
- 常见渐近时间: O(1) < O(log2n) < O(n) < O(nlog2n) < O(n^2) < O(n^3) < O(2^n)
< O(n!) < O(n^n)
空间复杂度
- 原地工作: S(n) = O(1)
注意点
- 执行次数 or 时间复杂度
- 是否为大O(n)