Chapter 5 查詢
1- 順序查詢法 O(n)
2- 折半查詢O(logn) :二分查詢
要求:關鍵字有序
過程:
判定樹:葉子結點為方框,代表不成功的結點。
3- 分塊查詢:索引順序查詢
ASL = ASL1+ASL2
4- 二叉排序樹(BST)
特點:左<根<右
5- 平衡二叉樹(AVL)
6- B-樹(B數)
特點:
1 分支數 = 關鍵字數 + 1,最大分支數就是B樹的階數
2 根結點至少有1個關鍵字,兩個分支
其餘結點至少有 個分支, -1個關鍵字
3 結點內關鍵字互不相等按從小到大順序排列
4 葉結點處於同一層,是查詢失敗到達的位置(計算結點數時要算上)
5 下層結點的關鍵字取值在上層所劃分割槽間內
基本操作:
1 查詢:多路查詢
2 插入:可能引起拆分,多次拆分叫連鎖反應
3 刪除:直接刪,不夠找兄弟借,再不夠合併
7- B+樹
B-樹和B+樹的區別:(先B+,後B-)
1 B+樹:n個關鍵字n個分支
B-樹:n個關鍵字n+1個分支
2 關鍵字個數: ≤n≤m -1≤n≤m-1
根結點個數: 2≤n≤m 1≤n≤m-1
3 B+樹:非葉子結點只是個索引,不包含關鍵字對應記錄的儲存地址
B-樹:每個關鍵字對應一個記錄的儲存地址
B+樹:葉子結點包含資訊和全部關鍵字,葉子結點引出的指標指向記錄
B+樹:有一個指標指向關鍵字最小的葉子結點,所有葉子結點連結成一個線性連結串列
8- 雜湊表(雜湊表)
H(key) ---- 雜湊地址
發生衝突----同義詞
Hi(key)----解決衝突後的地址
查詢成功的ASL1 = 每個關鍵字的比較次數
查詢失敗的ASL2 = 由該地址開始到空地址為止進行比較操作的次數
常見Hash函式構造方法:除留取餘法
常見解決衝突方法:
1 開放定址法:包括線性探查法等…
2 鏈地址法:
效能分析:α(裝填因子) = 關鍵字個數/表長
Hash表的ASL與α有關,與關鍵字無關。
注:
1 順序表查詢優點是順序/鏈式均可,缺點是n較大時,ASL大,效率低
2 折半查詢適合順序,不適合鏈式,且要求有序