資料結構中的分塊法


分塊構建將雜湊表作為二維陣列,而不是一維陣列。陣列中的每個條目非常大,足以容納 M 個專案(M 不是資料量。只是一個常數)。

問題

  • 浪費了大量空間。
  • 如果超過 M,則需要實現另一種策略。
  • 基於記憶體的實現效能不太好,但如果分塊是基於磁碟的,則可以實現。

對於分塊來說,λ>1是可以的。但是,λ越大,碰撞的可能性就越大。λ>1 可以保證至少發生 1 次碰撞(抽屜原理)。這將增加執行時間和用完分塊的可能性。

對於 M 個位置和每個位置 Y 個分塊的雜湊表

  • 成功的搜尋 - 最壞情況為 O(Y)
  • 不成功的搜尋 - 最壞情況為 O(Y)
  • 插入 - O(Y) - 假設成功,分塊沒有很好的方法來處理不成功的插入。
  • 刪除 - O(Y)
  • 儲存:O(M * Y)

更新於:2020-01-07

574 個瀏覽量

開啟您的職業生涯

完成課程,獲得認證

立即開始
廣告