Data structures 给定两个哈希函数的开放地址哈希
我有元素序列:Data structures 给定两个哈希函数的开放地址哈希,data-structures,hash,Data Structures,Hash,我有元素序列:S={1,17,8,12,9,10,8},我必须用散列函数h1(x)=xmod7和h2(x)=1+(xmod3)和m=7对它们进行散列 h1(1) = 1mod7 = 1 -> [ ][ 1 ][ ][ ][ ][ ][ ] h1(17) = 17mod7 = 3 -> [ ][ 1 ][ ][17 ][ ][ ][ ] 现在h1(8)=8mod7=1但是这会导致冲突,所以我必须使用第二个散列函数,它给出h2(8)=1+
S={1,17,8,12,9,10,8}
,我必须用散列函数h1(x)=xmod7
和h2(x)=1+(xmod3)
和m=7
对它们进行散列
h1(1) = 1mod7 = 1 -> [ ][ 1 ][ ][ ][ ][ ][ ]
h1(17) = 17mod7 = 3 -> [ ][ 1 ][ ][17 ][ ][ ][ ]
现在h1(8)=8mod7=1
但是这会导致冲突,所以我必须使用第二个散列函数,它给出h2(8)=1+(8mod3)=3,但是这也会导致冲突,那么我应该将元素8
存储在哪里呢?谢谢您可以:
- 如果在第二个哈希中发生冲突,则链接对象
或
- 选择一系列散列函数,而不仅仅是两个。如果与
i
th函数发生冲突,则使用i+1
th函数进行散列。阅读有关双重散列的更多信息