常见的数据结构及优缺点
数据结构
| 优点 | 缺点 |
---|---|---|
数组 | 支持随机访问,查找快 | 删除和插入慢,由于要预留空间,会造成空间浪费 |
链表 | 插入快,删除快 | 查找慢 |
栈 | 先进后出 | 存取其他项很慢 |
队列 | 先进先出 | 存取其他项都很慢 |
堆 | 插入,删除块,对最大数据的项存取很快 | 对其他数据项存取很慢 |
哈希表 | 如果关键字已知则存取速度极快,插入快 | 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分 |
二叉树 | 查找,插入,删除都快(如果数保持平衡) | 删除算法复杂 |
红-黑树 | 查找,插入,删除都快,树总是平衡的 | 算法复杂 |
2-3-4树 | 查找,插入,删除都快,树总是平衡的。类似的树对磁盘存储有用 | 算法复杂 |
图 | 对现实世界建模 | 有些算法慢且复杂 |
查找、插入、删除的时间复杂度
二叉查找数的插入:必须是插入到叶子节点。
堆:创建堆n、插入(上浮)和删除(下沉)都是logn