平方探测法是一种较好的处理冲突的方法,可以避免出现“堆积”问题,它的缺点是不能探测到散列表上的所有单元,但至少能探测到一半单元。下面通过一个例子来理解:

  设Hash函数为 H( key ) = key mod 7,哈希表的地址空间为0,1,...,10,开始时哈希表为空,用平方探测法解决冲突,画出依次插入键值9,14,10,30,56,28后的哈希表和比较次数。

  1.插入键值9,9 mod 7 = 2 ,无冲突,插入,比较一次;

  平方探测法处理散列函数冲突

  2.插入键值14,14 mod 7 = 0,无冲突,插入,比较一次;

  平方探测法处理散列函数冲突

  3.插入键值10,10 mod 7 = 3,无冲突,插入,比较一次;

  平方探测法处理散列函数冲突

  4.插入键值30,30 mod 7 = 2,冲突,2+12=3,有冲突,2-12=1,无冲突插入,比较3次;

   平方探测法处理散列函数冲突

  5.插入键值56,56 mod 7 = 7,无冲突,插入,比较一次;

   平方探测法处理散列函数冲突

  6.插入键值28,28 mod 7 = 0,冲突,0+12=1,有冲突,0-12=-1,此时插入到地址10,如果等于-2就插入到地址9,比较次数3次。此时插入全部完成。

   平方探测法处理散列函数冲突

 

   

相关文章:

  • 2021-11-22
  • 2021-11-18
  • 2021-09-22
  • 2021-12-18
  • 2021-07-13
  • 2022-12-23
  • 2022-01-03
猜你喜欢
  • 2021-09-16
  • 2022-12-23
  • 2021-10-03
  • 2021-03-31
  • 2021-07-02
  • 2022-12-23
  • 2021-08-22
相关资源
相似解决方案