29 41 63 51 44 65 17散列函数为 value11等概率查询的平均次数是多少
使用除留余数法,将每个数除以11取余得到的结果如下:
2 8 8 7 10 10 6
按照散列表的定义,我们将这些数字放入对应的槽中,得到如下散列表:
0: 1: 2: 29 3: 4: 44 5: 65 6: 17 7: 51 8: 41 63 9: 10:
假设我们要查询数字44,按照散列函数,我们需要在第4个槽中查找,只需要一次查询就可以找到。
假设我们要查询数字63,按照散列函数,我们需要在第8个槽中查找,需要两次查询才能找到。
我们可以计算出每个数字在散列表中的槽号,然后将它们出现的次数累加起来,再除以数字的总数,就得到了等概率查询的平均次数。
2出现1次,查询1次;
8出现2次,查询1次和2次,总共查询3次;
7出现1次,查询1次;
10出现2次,查询1次和2次,总共查询3次;
6出现1次,查询1次;
51出现1次,查询1次;
41出现1次,查询1次;
63出现1次,查询2次;
总共查询了15次,所以等概率查询的平均次数为15/7 ≈ 2.14。
原文地址: https://www.cveoy.top/t/topic/fJXI 著作权归作者所有。请勿转载和采集!