hash table学习
一、生成关键字
幂的连乘
压缩连乘后的数据范围(取余运算)
二、解决冲突(生成的关键字相同)
开放地址法:
1.线性探测:沿着数组的下标一步一步顺序的查找空白单元
2.二次探测:也是一步一步的移动,不过步长是步数的平方,如x+1,x+4,x+9
3.再哈希化:是把关键字用不同的哈希函数再做一遍哈希化
stepsize=constant-(key%constant);
其中,constant是质数,且小于数组容量。
链地址法:
某个数据项的关键字还是像通常一样映射到哈希表的单元,而数据项本身插入到这个单元的链表中。(可以重复插入相同的数据项)