数据结构和算法能起到什么作用
- 现实世界的数据存储
- 程序员的工具
- 建模
数据结构的特性
数据结构 | 优点 | 缺点 |
---|---|---|
数组 | 插入块,如果知道下表可以非常快的存取 | 查找、删除慢,大小固定 |
有序数组 | 比无序数组查找快 | 删除和插入慢,大小固定 |
栈 | 提供先进后出的存取方式 | 存取其他项很慢 |
队列 | 提供先进先出的存取方式 | 存取其他项很慢 |
链表 | 插入快,删除快 | 查找慢 |
二叉树 | 查找、插入、删除都很快(如果保持平衡) | 删除算法复杂 |
红-黑树 | 查找、插入、删除都快。树总是平衡的 | 算法复杂 |
2--3-4树 | 查找、插入、删除都快。树总是平衡的。类似的树对磁盘存储有用 | 算法复杂 |
哈希表 | 如果关键字已知则存取极快。插入快 | 删除慢,如果位置关键字则存取慢,对存储空间使用不充分 |
堆 | 插入、删除快,对最大数据项存取快 | 对其他数据项存取慢 |
图 | 对现实世界建模 | 有些算法慢且复杂 |
算法的概述
算法的范畴包括
- 插入一条新的数据项
- 寻找某一特定的数据项
- 删除某一特定的数据项
- 另一种范畴则是排序