给定表(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,sep,Oct,Nov,Dec),设取散列函数H(x)=[i⼀2]

2024-11-26 00:40:30
推荐回答(1个)
回答1:

由于字母表最大的序号为26,26/2=13,散列表只需要0~13即可。

开散列:
位置 值
0 Apr Aug
1
2 Dec
3 Feb
4
5 Jan Jun Jul
6 Mar May
7 Oct Nov
8
9 Sep
10
11
12
13

闭散列:
位置 值
0 Apr
1 Aug
2 Dec
3 Feb
4
5 Jan
6 Mar
7 May
8 Jun
9 Jul
10 Sep
11 Oct
12 Nov
13

查找成功:
开散列表:(7+2+2+2+2+3)/12=3/2
闭散列表:(1+1+1+1+2+2+3+2+2+5+6+1)/12=9/4

查找不成功:
开散列表:(3+1+2+2+1+4+3+3+1+2+1+1+1)/12=25/12
闭散列表:(5+4+3+2+1+9+8+7+6+5+4+3+2+1)/12=5

我这只写出了答案,如果需要详细的解释我可以再补充,希望对你能有帮助。