对于普通编程语言的哈希表实现来说,什么大小算是太大?
比如我想写一个程序来玩“相声词”游戏。用户输入一个单词后,程序需要在字典中查找该单词是否存在。为了避免不断地读取文件,将10万个以上的单词加载到哈希表中是否明智呢?
除了物理限制(RAM)和实现限制(Java哈希映射 vs C#哈希映射 vs STL或Boost等)之外;我认为哈希表大小的上限“应该”取决于哈希算法。 原始意图是:随着集合大小的增长,哈希映射实现常量查找时间。如果您有一个好的哈希算法,那么可以为大量值生成唯一的键;但如果您有一个糟糕的哈希算法,那么当您开始出现冲突时(例如,两个唯一的输入进入您的哈希算法生成相同的值),您的查找时间就会崩溃,并且你需要使用技巧来避免冲突。
但这不应该是您寻找的答案。 我只是提出这个观点,以增加讨论中尚未解决的另一个要点。 我认为您应该研究@Salvatore Previti的回答。 鉴于您面临的问题,他提到的解决方案似乎更适合。