哈希表线性探测再散列的方法详解
例:设哈希表长为m=14,散列函数为H(k)=k mod 11,关键字序列为5,7,16,12,11,21,31,51,17,81;试求:散列后的表中关键字分布(假定解决冲突的方法为线性探测再散列法)
解题步骤:
(1)将关键字序列中的每一个数除以散列函数中的11并取余数。
(2)将关键字对照余数,放入哈希表中。
(3)因为在关键字序列中16排在51前,所以我们先处理关键字16的冲突,也就是先解决关键字16到底应该放在哪一个哈希表值的位置。
(4)关键字16除以11取余数为5,哈希表值为5处已经被关键字5占用,关键字5在关键字序列中排在16的前面,所以,关键字16只能向后移动一位放在哈希表值为6处,但是此时哈希表6的位置处放的是关键字17,我们查看关键字序列可以发现,关键字16在序列中是排在17的前面,所以,可以将16放在哈希表值为6处。此时,17变为冲突的关键字。