資料結構中的分塊法
分塊構建將雜湊表作為二維陣列,而不是一維陣列。陣列中的每個條目非常大,足以容納 M 個專案(M 不是資料量。只是一個常數)。
問題
- 浪費了大量空間。
- 如果超過 M,則需要實現另一種策略。
- 基於記憶體的實現效能不太好,但如果分塊是基於磁碟的,則可以實現。
對於分塊來說,λ>1是可以的。但是,λ越大,碰撞的可能性就越大。λ>1 可以保證至少發生 1 次碰撞(抽屜原理)。這將增加執行時間和用完分塊的可能性。
對於 M 個位置和每個位置 Y 個分塊的雜湊表
- 成功的搜尋 - 最壞情況為 O(Y)
- 不成功的搜尋 - 最壞情況為 O(Y)
- 插入 - O(Y) - 假設成功,分塊沒有很好的方法來處理不成功的插入。
- 刪除 - O(Y)
- 儲存:O(M * Y)
廣告