【发布时间】:2013-10-02 14:55:46
【问题描述】:
一些编程语言,如 python、Java 和 C++11,将哈希表(尽管有时使用不同的名称并具有扩展功能)作为其标准库的一部分。我想从高级算法的角度来理解已经实现了什么。具体来说:
- 键的什么功能用于提供放置数据的位置(即使用的散列函数是什么)?
- 他们使用哪些算法来解决冲突?例如,他们中是否有人使用simple chaining?
- 是否使用随机性来选择散列函数?
【问题讨论】:
-
你不能只看一个开源实现吗?
-
有一个python特定的答案here。
-
@CarlNorum:我怀疑任何人都可以通过简单地阅读哈希表的源代码实现来真正理解哈希表背后的理论。
-
对于任何感兴趣的人:这似乎是一篇相关的博客文章rcoh.me/posts/hash-map-analysis
-
@ArtemPelenitsyn 这是一个很好的链接,但没有提到随机化,我认为这是现代实现的重要组成部分。
标签: java c++ python hash language-agnostic