Algorithm 使用线性探测实现哈希表时调整大小的权衡
我正在尝试使用线性探测实现哈希表 在将(键、值)对插入哈希表之前,我想检查它是否已满一半。如果是,我需要将底层数组的大小增加一倍 显然,有两种方法可以做到这一点: 一种方法是创建另一个大小加倍的数组,重新缓存旧数组中的所有条目,并将它们添加到新数组中。然后,将旧数组重新绑定到新数组。这种方法易于实现,但占用了大量空间 另一种方法是将数组加倍,并在适当的位置进行重新灰化。这种方式可能会导致更长的运行时间,因为重新灰化可能会导致与新哈希插槽和旧插槽的冲突Algorithm 使用线性探测实现哈希表时调整大小的权衡,algorithm,hashtable,linear-probing,Algorithm,Hashtable,Linear Probing,我正在尝试使用线性探测实现哈希表 在将(键、值)对插入哈希表之前,我想检查它是否已满一半。如果是,我需要将底层数组的大小增加一倍 显然,有两种方法可以做到这一点: 一种方法是创建另一个大小加倍的数组,重新缓存旧数组中的所有条目,并将它们添加到新数组中。然后,将旧数组重新绑定到新数组。这种方法易于实现,但占用了大量空间 另一种方法是将数组加倍,并在适当的位置进行重新灰化。这种方式可能会导致更长的运行时间,因为重新灰化可能会导致与新哈希插槽和旧插槽的冲突 我应该使用哪种方法?如果事实上有足够的空间扩
我应该使用哪种方法?如果事实上有足够的空间扩展现有的哈希表,那么第二种解决方案只会在调整大小的过程中节省空间-我认为对于大型哈希表来说,这样做的可能性很小,所以我只选择第一种解决方案