索引 - 原理

複雜度

數據結構 查找 插入 刪除
數組 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優缺點明顯

  • 不支持排序

  • 不支持部分和範圍查找

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章