图结构和查找习题复习(78章)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

addr(14)=2 addr(55)=3 addr(68)=4 addr(84)=5 addr(19)=6 addr(20)=7 addr(10)=9 addr(23)=10 addr(11)=11 addr(77)=12 其他地址为空。
例 已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79) 哈希函数为:H(key)=key MOD 13, 哈希表长为m=16, 设每个记录的查找概率相等
H(68)=3 H(20)=7 H(84)=6 冲突,H1=(6+1)MOD16=7
冲突,H2=(6+2)MOD16=8
H(27)=1 冲突,H1=(1+1)MOD16=2 冲突,H2=(1+2)MOD16=3 冲突,H3=(1+3)MOD16=4
H(55)=3 冲突,H1=(3+1)MOD16=4 冲突,H2=(3+2)MOD16=5
(1) 用线性探测再散列处理冲突,即Hi=(H(key)+di) MOD m
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14 1 68 27 55 19 20 84 79 23 11 10
H(19)=6 H(14)=1 H(23)=10
H(1)=1 冲突,H1=(1+1) MOD16=2
例题2:试述顺序查找法、二分查找法和分块查找法对被查找的表中元 素的要求。对长度为n的表来说,3种查找法在查找成功时的平均查 找长度各是多少?
解:3种方法对查找的要求分别如下: 1)顺序查找法:表中元素可以任意次序存入。 2)二分查找法:表中元素必须以关键字的大小递增或递减的次序有序
列且顺序表存储。 3)分块查找法:表中元素块内的元素可以任意次序存放,但块与块之
【解】 依题意,m=19,二次探测再哈希的下一地址计算公式为: d1=H(key);d2j=(d1+j*j)%m;d2j+1(d1-j*j)%m;j=1,2,… 其计算函数如下: H(19)=19%13=6 H(1)=1%13=1 H(23)=23%13=10 H(14)=14%13=1(发生冲突) H(14)=(1+1*1)%19=2 H(55)=55%13=3 H(20)=20%13=7 H(84)=84%13=6(发生冲突) H(84)=(6+1*1)%19=7(仍发生冲突)
H(84)=(6-1*1)%19=5 H(27)=27%13=1(发生冲突) H(27)=(1+1*1)%19=2(发生冲突) H(27)=(1-1)%19=0 H(68)=68%13=3(发生冲突) H(68)=(3+1*1)%19=4 H(11)=11%13=11 H(10)=10%13=10(发生冲突) H(10)=(10+1*1)%19=11(仍发生冲突) H(10)=(10-1*1)%19=9 H(77)=11%13=12 因此,各关键字的记录对应的地址分配如下: addr(27)=0 addr(1)=1
(n/1+s)+1;若用二分查找确定所在块,平均查找长度为log2 (n/s+1)+s/2。其中,s为每块含有的元素的个数。
例题3: 设有一组关键字{19,1,23,14,55,20,84,27,68,11, 10,77}采用哈希函数:H(key)=key%13采用开放定址法的二次 探测再哈希方法解决冲突,试在0~18的哈希地址空间中对该关键字 序列构造哈希表。
8 9 10 11 75 80 88 92
low
mid
high
1 2 3 4 5 6 7 8 9 10 11
5 13 19 21 37 56 64 75 80 88 92
lowmid high
例5:在下例中,画出折半查找21的过程示意图。在画出有 序序列的查找判定树,计算查找成功的ASL(自己做)。
找21
1 2 3 4 5 6 7 8 9 10 11 5 13 19 21 37 56 64 75 80 88 92
low
mid
123456 7 5 13 19 21 37 56 64
high
例题1 对于给定的关键序列,若哈希函数无冲突,则称其为完备 (perfect)的。设哈希表长度为7,试为{Bret,Jane, Michelle,Heatther}设计一个完备的哈希函数H(提示: 考虑每个字串的第3个字符),并写出其C代码。 解: 设计哈希函数H如下: H(key)=key(第3个字母的ASCII码MOD 7),则: H(Bert)=101 MOD 7=3 H(Jane)=110 MOD 7=5 H(Shirley)=105 MOD 7 H(Bryce)=121 MOD 7=2 H(Michelle)=99 MOD 7=1 H(Heather)=97 MOD 7=6
间必须以关键字的大小递增(或递减)存放,即前一块内所有元素 的关键字都不能大(或小)于后一块内任何元素的关键字。
3种方法平均查找长度分别如下: ⑴顺序查找法:查找成功的平均查找长度为n+1/2。 ⑵二分查找法:查找成功的平均长度为log2(n+1)-1。 ⑶分块查找法:若用顺序查找确定所在的块,平均查找长度为:1/2
ASL=(1*6+2+3*3+4+9)/12=2.5
关键字(19,14,23,1,68,20,84,27,55,11,10,79) (2) 用链地址法处理冲突
0^
1
2^
3
4^ 5^
6
7
8^ 9^
10 11
12 ^
14
1
27
79 ^
68
55 ^
19 20 ^
84 ^
23 11 ^
来自百度文库
10 ^
ASL=(1*6+2*4+3+4)/12=1.75
H(11)=11
H(10)=10 冲突,H1=(10+1)MOD16=11 冲突,H2=(10+2)MOD16=12
H(79)=1 冲突,H1=(1+1)MOD16=2 冲突,H2=(1+2)MOD16=3 冲突,H3=(1+3)MOD16=4 冲突,H4=(1+4)MOD16=5 冲突,H5=(1+5)MOD16=6 冲突,H6=(1+6)MOD16=7 冲突,H7=(1+7)MOD16=8 冲突,H8=(1+8)MOD16=9
相关文档
最新文档