下面是常用数据结构及其常见操作(如插入、删除、查找等)时间复杂度的表格。表格中列出了每种数据结构的常见操作在不同情况下的时间复杂度。
数据结构 | 操作 | 平均时间复杂度 | 最坏时间复杂度 | 最优时间复杂度 |
---|---|---|---|---|
数组 | 插入/删除 | O(n) | O(n) | O(1) |
查找 | O(1) | O(1) | O(1) | |
更新 | O(1) | O(1) | O(1) | |
链表 | 插入/删除 | O(1) | O(1) | O(1) |
查找 | O(n) | O(n) | O(n) | |
更新 | O(n) | O(n) | O(n) | |
栈 | 插入/删除 | O(1) | O(1) | O(1) |
查找 | O(n) | O(n) | O(n) | |
队列 | 插入/删除 | O(1) | O(1) | O(1) |
查找 | O(n) | O(n) | O(n) | |
哈希表 | 插入 | O(1) | O(n) | O(1) |
查找 | O(1) | O(n) | O(1) | |
删除 | O(1) | O(n) | O(1) | |
二叉搜索树 | 插入 | O(log n) | O(n) | O(log n) |
查找 | O(log n) | O(n) | O(log n) | |
删除 | O(log n) | O(n) | O(log n) | |
平衡二叉树 | 插入 | O(log n) | O(log n) | O(log n) |
查找 | O(log n) | O(log n) | O(log n) | |
删除 | O(log n) | O(log n) | O(log n) | |
堆 | 插入 | O(log n) | O(log n) | O(log n) |
查找 | O(1) | O(1) | O(1) | |
删除 | O(log n) | O(log n) | O(log n) | |
Trie(前缀树) | 插入 | O(m) | O(m) | O(m) |
查找 | O(m) | O(m) | O(m) | |
删除 | O(m) | O(m) | O(m) | |
图(邻接矩阵) | 插入 | O(1) | O(1) | O(1) |
查找 | O(1) | O(1) | O(1) | |
删除 | O(n) | O(n) | O(n) | |
图(邻接表) | 插入 | O(1) | O(1) | O(1) |
查找 | O(n) | O(n) | O(n) | |
删除 | O(n) | O(n) | O(n) | |
跳表 | 插入 | O(log n) | O(log n) | O(log n) |
查找 | O(log n) | O(log n) | O(log n) | |
删除 | O(log n) | O(log n) | O(log n) |
这些时间复杂度是平均情况下的常见值。实际的性能可能会根据具体实现和输入的不同而有所变化。