Hash(散列)冲突解决之线性探测再散列和二次探测再散列

线性探测再散列

H(key) = key %13,key 为关键字,采用开放地址法中的线性探测再散列解决冲突,依次输入11 个关键字,16,74,60,43,54,90,46,31,29,88,77,构造哈希表

Hash(散列)冲突解决之线性探测再散列和二次探测再散列_第1张图片
如图,例如 16%13=3,将16放入3号位置,29%13 = 3,将29放入3号位置,而此时3号位已经有元素。
就顺着表往后放,直到6号没有元素,29放入6号。
平均查找长度ASL=(2+1+1+1+1+4+1+1+1+1+1)/11=1.36

二次探测再散列

设关键字序列为:(62,30,18,45,21,78,66,32,54,48),
哈希函数为:hash(k) =k % 11,
采用二次探测再散列处理冲突,将其散列到地址空间为0到10的哈希表中,
在等概率条件下查找成功时的平均查找长度为?
探测过程:x+ 1^2, x - 1^2,x+ 2^2, x - 2^2
在这里插入图片描述
Hash(散列)冲突解决之线性探测再散列和二次探测再散列_第2张图片
如图,例如45%11=1,放在1的位置,78%11=1,位置冲突,探测1+1^2=2位置,2位置没有关键字则放入,否则继续探测。
平均查找长度ASL=(1+1+3+1+1+2+1+3+4+1)/10=1.8

你可能感兴趣的:(数据结构和算法,哈希算法,散列表,算法)