【发布时间】:2017-12-03 21:00:16
【问题描述】:
我正在寻找一个函数,它接受一个字符串并返回一个动态数组范围内的值,基本上是一个动态哈希表,但我对从哪里开始感到很困惑,我有向量下来,但我不知道哪个散列函数可能对运行时性能有好处——我希望它速度快且没有冲突,因此,如果你能分享一些关于候选实现或算法的资源,我会很高兴
谢谢。
【问题讨论】:
标签: algorithm performance vector hashmap hashtable
我正在寻找一个函数,它接受一个字符串并返回一个动态数组范围内的值,基本上是一个动态哈希表,但我对从哪里开始感到很困惑,我有向量下来,但我不知道哪个散列函数可能对运行时性能有好处——我希望它速度快且没有冲突,因此,如果你能分享一些关于候选实现或算法的资源,我会很高兴
谢谢。
【问题讨论】:
标签: algorithm performance vector hashmap hashtable
嗯,有很多因素需要考虑。一是哈希表的大小。哈希表只有在没有 colisions 的情况下才是好的,所以一个大的素数就可以了,但是如果数字太大,你会浪费很多内存,你必须考虑你期望的数据量。如果您的质数太低,也会发生同样的情况,您必须重新创建哈希。
我知道有 2 种解决方案可以防止发生碰撞: 每次发生冲突时,您都可以在哈希内创建另一个哈希或数组列表。
或者您也可以在每次发生碰撞时尝试将该信息放在哈希表的下一个可用空间中。
【讨论】: