🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 2.3.4 rehash 哈希表的rehash步骤: - 为字典的`ht[1]`分配空间,该空间取决于要执行的操作以及`used` - 如果是扩展操作,则等于第一个大于等于`ht[0].used * 2`的**2的n次幂** - 如果是收缩操作,则等于第一个大于等于`ht[0].used`的**2的n次幂** - 将保存在`ht[0]`中的所有键值对rehash(重新计算键值对的hash值和索引值)到`ht[1]`上面 - 当`ht[0]`包含的的所有键值对都迁移到了`ht[1]`之后(`ht[0]`变为空表),释放`ht[0]` ---- 在渐进式rehash过程中: - 字典的删改查操作会在`ht[0]`和`ht[1]`上同时进行 - 新增操作只会在`ht[1]`上进行,保证`ht[0]`只减不增