| 数据结构 | 优点 | 缺点 |
|---|---|---|
| 数组 | 插入快,索引快 | 长度固定,查找慢,删除慢 |
| 有序数组 | 比无序数组查找快 | 长度固定,删除和插入慢 |
| 栈 | 提供后进先出方式的存取 | 存取其他项很慢 |
| 队列 | 提供先进先出方式的存取 | 存取其他项很慢 |
| 链表 | 插入快,删除快 | 查找慢 |
| 二叉树 | 查找、插入、删除都快 | 删除算法复杂 |
| 红黑树 | 查找、插入、删除都快,树总是平衡的 | 算法复杂 |
| 2-3-4树 | 查找、插入、删除都快。树总是平衡的。类似的树对磁盘存储有用。 | 算法复杂 |
| 哈希表 | 如果关键字已知则存取快,插入快 | 删除慢 |
| 堆 | 插入、删除快,对最大数据项的存取很快。 | 其他项存取慢 |
| 图 | 用处广 | 算法复杂 |
Java.util包中包含有诸如向量、栈、库和哈希表等类型的数据结构。
大O表示法
表示的数据规模n对应的复杂度
对数阶一般省略底数
log2(n) —— log9(n) ====> O(logn)
对数阶优于指数阶
斐波那契递归的时间复杂度 O(2^n)
