数据结构 | 根据关键字查找 | 根据索引查找 | 插入 | 删除 |
---|---|---|---|---|
数组 | O(n) | O(1) | O(n) | O(n) |
有序数组 | O(logn) | O(1) | O(n) | O(n) |
链表 | O(n) | O(n) | O(1) | O(1) |
有序链表 | O(n) | O(n) | O(1) | O(1) |
双向链表 | O(n) | O(n) | O(1) | O(1) |
二叉树(一般情况) | O(logn) | O(logn) | O(logn) | |
二叉树(最坏情况) | O(n) | O(n) | O(n) | |
平衡树 | O(logn) | O(logn) | O(logn) | O(logn) |
排序二叉树 | O(logn)~O(n) | O(logn)~O(n) | O(logn)~O(n) | O(logn)~O(n) |
哈希表 | O(1) | O(1) | O(1) |
推荐阅读
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 数据结构和算法|LeetCode 的正确使用方式
- 先序遍历 中序遍历 后序遍历 层序遍历
- 数据结构|C++技巧(用class类实现链表)
- 数据结构|贪吃蛇代码--c语言版 visual c++6.0打开
- 算法|算法-二分查找
- 数据结构学习指导|数据结构初阶(线性表)
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔