已知有4万多个string,要放入自己定义的 hashtable 里,有什么好建议吗?
刚看到要求的时候,本来想就采用 jdk 的方法,当每当加入一定的记录, array 就自动扩展,然后就 rehash
但突然一想,不对。那种方法是在记录数未知的时候才有意义,我已经有一个大概的范围了,还每次 rehash 那么麻烦干嘛。
可是,我总不能建一个 size 为 4万多的数组吧,好像有点傻
要不建了 2万多?每个元素 link 多一个,那么 hash 后的查找也最多找两次
还是建1万多?4000?
但当我的元素越少的时候,collision 发生的机会就大,即使有很好的 hash function, 也不能保证数组每一个元素 link 下去的能够平均分配哦
有什么其他的建议吗?
谢谢