複雜度
數據結構 | 查找 | 插入 | 刪除 |
---|---|---|---|
數組 | O(n) | O(n) | O(n) |
有序數組 | O(logn) | O(n) | O(n) |
鏈表 | O(n) | O(1) | O(1) |
有序鏈表 | O(n) | O(1) | O(1) |
二叉樹 | O(n) | O(n) | O(n) |
有序二叉樹 | O(logn) ~ O(n) | O(logn) ~ O(n) | O(logn) ~ O(n) |
B-Tree | O(logn) | O(logn) | O(logn) |
Hash | O(1) | O(1) | O(1) |
有序二叉樹又稱二叉查找樹
B-Tree
B-Tree: 平衡多叉查找樹
B(balanced): 左右子樹層級相差<=1 相比非平衡提升最優查找效率
多叉: 子樹可以不僅僅只有兩個 相比二叉樹減少I/O操作以提升查找效率
B+Tree
B+Tree: B-Tree變種
非葉子只存儲鍵值而葉子只存儲數據 相比BTree減少I/O操作以進一步提升查找效率
葉子有序鏈接 -> 提升範圍查找效率
Hash
Hash優缺點明顯
不支持排序
不支持部分和範圍查找