【发布时间】:2017-07-20 05:41:15
【问题描述】:
我目前正在考虑哈希表的冲突解决策略选项。当我最初被教导哈希表的实现时,我了解到与有很多陷阱的线性探测相比,分离链是首选。在网上研究之后,我发现python字典的底层实现使用一种称为随机探测的技术来解决冲突,如this CPython file的文档字符串中所述。
鉴于它在官方字典实现中使用,它似乎可能是解决哈希表冲突的最有效方法。但是考虑到实现随机探测的复杂性,并且由于分离链通常是一种公认的冲突策略,我有什么理由不应该使用分离链来支持随机探测?
【问题讨论】:
-
为什么要担心实施?你可以只使用字典。
-
随机探测真的没有那么复杂,它是几个算术运算:
j = ((5*j) + 1) mod 2**i -
@user3080953 我只是不明白为什么它甚至应该被用作单独链接的首选。
标签: python dictionary hashtable