page contents

hash表如何rehash,怎么处理其中保存的资源?

轩辕小不懂 发布于 2022-03-04 14:27
阅读 491
收藏 0
分类:开发环境
3211
Nen
Nen
- 程序员

先想想为什么需要rehash:

因为,当loadFactor(负载因子)<=1时,hash表查找的期望复杂度为O(1). 因此,每次往hash表中添加元素时,我们必须保证是在loadFactor <1的情况下,才能够添加。

模仿C++的vector扩容方式,Hash表中每次发现loadFactor==1时,就开辟一个原来桶数组的两倍空间(称为新桶数组),然后把原来的桶数组中元素全部转移过来到新的桶数组中。注意这里转移是需要元素一个个重新哈希到新桶中的。

请先 登录 后评论