本文为 数据结构与算法分析:C语言描述 的学习记录
目录
5 散列
5.1 定义
思想:将每个关键字映射到从0到TableSize-1的范围的某个数,并且被放到适当的单元中。
难道:冲突的处理。
5.2 分离链接法
将散列到同一个值的所有元素放到一个表中。
5.3 开放定址法
F(i)作为步长,下一个探测单元距离映射值位置F(i)远处, i: 探测次数。
5.3.1 线性探测法
F(i) = i
5.3.2 平方探测法
F(i) = i^2
5.3.3 双散列
双散列有2个散列函数: hash1()、hash2()
F(i) = i * hash2(X)
下一个探测单元距离映射值(即:hash1(X)的位置)F(i)远处,其中X为待插入元素
注意:这种方法可能出现元素不能被映射到表中。(示例:本书练习题5.1的d问)
5.5 再散列
改变散列表的TableSize,然后重新散列。
5.6 可扩散散列
参照博客:https://blog.youkuaiyun.com/qq_40760673/article/details/82785505