我正在准备我的采访并遇到了这个问题:
考虑到我有1000,000个单词,我想创建一个字典。我可以使用的数据结构是Map或B +树。 但是我应该在什么标准下编写我的hashcode(),以便检索可以很快。
欢迎大家的意见...
答案 0 :(得分:2)
我不会使用,而是将字典存储为Patricia trie。
它也使用更少的内存,因为你没有单独存储所有字符串的所有公共前缀。
答案 1 :(得分:1)
在“旧时代”(1980年代),我们倾向于使用B *(或B * +)树,并且对于击中磁盘非常挑剔,但是现在1,000,000个键无法适应内存,所以坚持使用它dict并完成它。
告诉你的面试官:与开发者的成本相比,内存接近免费。你花在这上面的时间花费的时间永远无法通过任何你可以提出的效率来恢复。如果他们不明白为什么那是真的,那么......呃。