关于数据结构与算法
“数据结构 + 算法 = 程序”
我们程序员写程序在解决大量问题后发现很多问题都有相似的解决方法和简便方法,就把它抽象出来为算法,与之对应的设计思想就是数据结构,有了这两个利器,我们写程序解决实际问题就有规可循,有了好的推导和实现方式
第一章
数据存储的几种方式
- 顺序存储 (类似于数组)
- 链式存储 (指针,地址)
- 索引方法 (高效查询)
- 散列方法 (散列表 开很大的空间 哈希)
抽象数据类型(ADT)与数据结构
- 数据抽象与过程抽象
- 抽象数据类型
| data | data element | type |
注意:当我们设计ADT时,不考虑它的实现的细节,类似于C++中的类的声明,而不去代码实现
算法分析
渐进算法分析
- big Oh notation (大O表示法)
- Omega(大欧米伽)
- 西塔 (Theta)
其分析算法的复杂度有四个化简准则
我总结为 1. 常数提出
2. 分块程序取最大
3. 循环嵌套乘起来
4. 等价原则