数据结构查找作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.设有序表为(1、23、34、55、56、57、77、87、99)请分别画出对给定值23,56,98进行折半查找的过程。(并注明每次循环的各参数变量的结果)23的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)
下标: 1 2 3 4 5 6 7 8 9
第一次比较:[ 1 23 34 55(56)57 77 87 99]
low=1
high=9
mid=5
第二次比较:[ 1(23)34 55] 56 57 77 87 99]
low=1
high=4
mid=2
56的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)
下标: 1 2 3 4 5 6 7 8 9
第一次比较:[ 1 23 34 55(56)57 77 87 99]
low=1
high=9
mid=5
98的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)
下标: 1 2 3 4 5 6 7 8 9
第一次比较:[ 1 23 34 55(56)57 77 87 99]
low=1
high=9
mid=5
第二次比较: 1 23 34 55 56 [57 (77) 87 99]
low=6
high=9
mid=7
第三次比较: 1 23 34 55 56 57 77[(87) 99]
low=8
high=9
mid=8
第四次比较: 1 23 34 55 56 57 77 87[(99)]
low=9
high=9
mid=9
第五次比较: 1 23 34 55 56 57 77 87 99
low=9
high=8
low>high 查找不成功。
2
设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77},采用哈希函数
H(key)=key % 13,采用开放地址法(开放定址法)的二次探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造哈希表。
解:依题意,n=19,二次探测再散列的下一地址计算公式为:其计算如下:
H(19)=19 % 13 =6 H(01)=01 % 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*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)=77 %13 =12 因此:各关键字的记录对应的地址分配如下:addr(27) = 0addr(01) = 1addr(14)
= 2addr(55) = 3addr(68) = 4addr(84) = 5addr(19) = 6addr(20) = 7addr(10)
= 9addr(23) = 10addr(11) = 11addr(77) = 12其他地址为空。