【问题标题】:Hash tables optimization哈希表优化
【发布时间】:2009-12-02 21:07:02
【问题描述】:

在几个哈希表实现中,我看到了对存储桶中项目的“转置”或“移到前面”等启发式方法的使用。

  1. 使用这种启发式方法有哪些优势?我自己想不通。
  2. 可以在哈希表/存储桶级别进行哪些其他优化,为什么以及在什么情况下?

请先优化散列函数。

【问题讨论】:

    标签: compiler-construction hashtable hash compiler-theory


    【解决方案1】:

    如果发生冲突,因此桶中有多个项目,必须检查这些项目,如果经常访问的项目位于列表的前面会很方便。

    如果有理由假设最近访问的项目很可能很快会再次被访问,则这些启发式方法是有意义的。当人们考虑诸如新闻报道之类的事情时,很可能会经常访问突发新闻。

    【讨论】:

    • 这也称为自优化列表,其中最常访问的项目冒泡到列表的前面。
    • Loadmaster 说了什么...另外:查看 splay-tree(wiki!),了解为什么将事物移到前面是一个好主意。
    猜你喜欢
    • 2017-12-22
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    相关资源
    最近更新 更多