代码之家  ›  专栏  ›  技术社区  ›  Flavius

哈希表优化

  •  2
  • Flavius  · 技术社区  · 15 年前

    在一些哈希表实现中,我看到了对bucket中的项目使用启发式方法,如“转置”或“移到前面”。

    1. 使用这种启发式方法有什么好处?我自己想不出来。
    2. 在散列表/存储桶级别还可以进行哪些其他优化、为什么以及在何种情况下?

    请把散列函数优化放在一边。

    1 回复  |  直到 15 年前
        1
  •  4
  •   djna    15 年前

    如果发生了碰撞,因此存储桶中有几个项目,必须检查这些项目,如果常用的访问项目早在列表中,则很方便。

    如果有理由认为最近访问的项目很可能很快又会被访问,那么这些启发式方法是有意义的。当人们考虑诸如新闻故事之类的事情时,很可能会经常访问突发新闻。