哈希表中键值的不同插入序列数

时间:2019-01-16 16:09:22

标签: hash hashtable permutation insertion linear-probing

长度为10的哈希表使用具有哈希函数h(k)= k mod 10的开放式寻址和线性探测。在将8个值插入一个空的哈希表后,该表如下所示

0 |
1 | 91
2 | 2
3 | 13
4 | 24
5 | 12
6 | 62
7 | 77
8 | 82
9 |

使用相同的哈希函数和线性探测会产生多少个不同的键值插入序列?

答案-128。

我知道91,2,13,24,77是5! = 120,但我不知道其他8种组合是什么?

1 个答案:

答案 0 :(得分:1)

给出的答案是错误的,实际上这是一个最简单的回答,来源提供的答案是错误的。真正的答案是168。

可以通过两种方式完成-

1)91,2,13,24,12,62,77,82-如果您查看并过滤出详细信息,请点击此处

  _,91,_,2_,13,_,24,_,12,_,62,_,82 

在所有可用的空白中,我们可以填充77,它将始终排在第7位,因此 总共77种方法-7个位置中的任何一个,即7个。

现在91,2,13,24可以按任何顺序排列,并且可以按上述方式进行排列,因此共有4种!并为每四个!布置77可以出现在7个位置中的任何一个位置,因此答案是-4!* 7 = 168。

2)第二种方法-只有3种可能的顺序

i)91,2,13,24,77,12,62,82

 Here 91,2,13,24,77 can come in any order, They will get there respective 
 slots so total 5! ways.

ii)91,2,13,24,12,77,62,82

  Here 91,2,13,24 can come in any order and we have fixed 77 after 12 so total 
  4! ways.

iii)91,2,13,24,12,62,77,82

   same here with 4! ways 91,2,13,and 24 can come and 77 is fixed after 62.

所以总共5!+4!+4!= 168。