Hash 通过线性探测使哈希表实现高效?

Hash 通过线性探测使哈希表实现高效?,hash,Hash,我必须用openAddressing创建一个哈希表,并使用Linearprobing来解决冲突 当阵列大约满40%时,我会调整其大小。压缩函数使用简单的%命令进行压缩,因此当我调整大小(数组的两倍)时,我也会更改在压缩函数中修改哈希代码的因子。这使得插入一个包含100000个字符串的文件非常快,因为它确实避免了集群。问题是,现在的查找时间非常长,因为我不能通过获取hashcode直接进入索引,因为不是所有条目都是由相同的mod因子修改的?i、 e前1000个条目的索引可能为hashcode%10

我必须用openAddressing创建一个哈希表,并使用Linearprobing来解决冲突


当阵列大约满40%时,我会调整其大小。压缩函数使用简单的%命令进行压缩,因此当我调整大小(数组的两倍)时,我也会更改在压缩函数中修改哈希代码的因子。这使得插入一个包含100000个字符串的文件非常快,因为它确实避免了集群。问题是,现在的查找时间非常长,因为我不能通过获取hashcode直接进入索引,因为不是所有条目都是由相同的mod因子修改的?i、 e前1000个条目的索引可能为hashcode%1000,现在当数组大小调整为2000时,下一个条目的hashcode类似于hashcode%2000。我这样做是为了避免大量的线性探测,并使其分布更加均匀


那么,如何加快搜索速度呢?

“当数组大约满0.4%时,我会调整数组的大小。”点4%?对吗?或者你是说百分之四十?我的意思是如果(size==0.4*tableSize)…对不起,我是说百分之四十