2009-12-02 106 views
2

在幾個哈希表實現中,我已經看到啓發式的用法,比如「轉置」或「移動到前端」以獲得存儲桶中的項目。哈希表優化

  1. 使用這種啓發式算法的優點是什麼?我無法弄清楚自己。
  2. 可以在哈希表/存儲桶級別進行哪些其他優化,爲什麼以及在哪些情況下?

請優先考慮散列函數。

回答

4

如果碰撞正在發生,因此桶中有幾個物品,必須檢查,如果通常訪問的物品在列表的早期,這將是方便的。

如果有理由推測最近訪問的項目很可能很快就會被訪問,這些啓發式算法是有意義的。當人們考慮諸如新聞報道等事情時,突發新聞很可能會頻繁訪問。

+0

這也被稱爲*自優化列表*,其中最常訪問的項目冒泡到列表的前面。 – 2009-12-02 21:20:14

+0

Loadmaster說什麼......另外:看看splay-tree(維基!)的概念,爲什麼把東西移到前面是一個好主意。 – 2009-12-02 21:38:02

+0

修復損壞的博客鏈接。 我寫過一篇關於哈希和各種碰撞處理方法的詳細討論文章。這可能有助於http://techieme.in/hashing-in-detail-part-one – dharam 2015-03-23 12:11:17