- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 2
习题答案
一、选择题
1-5:D,C,D,D,DC
二、填空题
小于等于表长的最大素数或不包含小于20的质因子的合数
n/m
(1)13 (2)0..12 (3)4
三、判断题
1-5:对错错对错
四、应用题
如何衡量散列函数的优劣?简要叙述散列表技术中的冲突概念,并指出三种解决冲突的方法。
【解答】评价散列函数优劣的因素有:能否将关键字均匀影射到散列空间上,有无好的解决冲突的方法,计算散列函数是否简单高效。由于散列函数是压缩映像,冲突难以避免。
解决冲突的方法见线性探测、二次探测、拉链法等。
2、设有一组关键字{9,1,23,14,55,20,84,27},采用散列函数:H(key)=key % 7 ,表长为10,用开放地址法的二次探测再散列方法Hi=(H(key)+di) % 10(di=12,22,32,…,)解决冲突。要求:对该关键字序列构造散列表,并计算查找成功的平均查找长度。
【解答】
散列地址
0
1
2
3
4
5
6
7
8
9
关键字
14
1
9
23
84
27
55
20
比较次数
1
1
1
2
3
4
1
2
平均查找长度:ASLsucc=(1+1+1+2+3+4+1+2)/8=15/8
以关键字27为例:H(27)=27%7=6(冲突) H1=(6+1)%10=7(冲突)
H2=(6+22)%10=0(冲突) H3=(6+33)%10=5 所以比较了4次。
3、对下面的关键字集合{30,15,21,40,25,26,36,37},若查找表的装填因子为0.8,采用线性探测再散列方法解决冲突。要求:
(1)设计散列函数;
(2)画出散列表;
(3)计算查找成功和查找失败的平均查找长度。
【解答】由于装填因子为0.8,关键字有8个,所以表长为8/0.8=10。
(1)用除留余数法,散列函数为H(key)=key % 7
(2)
散列地址
0
1
2
3
4
5
6
7
8
9
关键字
21
15
30
36
25
40
26
37
比较次数
1
1
1
3
1
1
2
6
(3)计算查找失败时的平均查找长度,必须计算不在表中的关键字,当其散列地址为i时的查找次数。散列地址为i的失败比较次数是从i开始往右循环数到没有数据的位置。一般说计算时的分母是表长m。但在本例中,因为散列函数是H(key)=key % 7,散列地址只能是0~6,所以分母是7,而不应当用10。
故查找失败和查找成功时的平均查找长度分别为:
ASLunsucc=(9+8+7+6+5+4+3)/7=42/7=6
ASLsucc =16/8=2
4、设散列函数H(k)=3K % 11,散列地址空间为0~10,对关键字序列(32,13,49,24,38,21,4,12)按下述两种解决冲突的方法构造散列表:(1)线性探测再散列 (2)链地址法,
并分别求出等概率下查找成功时和查找失败时的平均查找长度。
【解答】.(1)
散列地址
0
1
2
3
4
5
6
7
8
9
10
关键字
4
12
49
38
13
24
32
21
比较次数
1
1
1
2
1
2
1
2
ASLsucc =(1+1+1+2+1+2+1+2)/8=11/8
ASLunsucc=(1+2+1+8+7+6+5+4+3+2+1)/11=40/11
(2)
ASLsucc =(1*5+2*3)/8=11/8
ASLunsucc=(1*6+2*2+3*3)/11=19/11
五、算法设计题
已知某散列表HT的装填因子小于1,散列函数H(key)为关键字的第一个字母在字母表中的序号。(1)处理冲突的方法为线性探测再散列。编写按第一个字母的顺序输出散列表中所有关键字的算法。处理冲突的方法为链地址法。(2)编写一个计算在等概率情况下查找不成功的平均查找长度的算法。
【题目分析】 本题未直接给出散列表表长,但已给出装填因子小于1,且散列函数H(k)为关键字第一个字母在字母表中的序号,字母‘A’的序号为1,表长可设为n(n≥27),而链地址法中,表长26。查找不成功是指碰到空指针为止(另一种观点是空指针不计算比较次数)。
(1)void Print(rectype h[])∥按关键字第一个字母在字母表中的顺序输出各关键字
{int i,j;
for(i=1;i≤26;i++) ∥ 散列地址1到26
{j=1;printf(“\n”);
while(h[j]!=null) ∥ 设散列表初始值为null
{if(ord(h[j])==i)∥ ord()取关键字第一字母在字母表中的序号
printf(“%s”,h[j]);
j=(j+1)% n;
}∥while
您可能关注的文档
- 智慧供应链 课件 第1章 智慧供应链概述.pptx
- 智慧供应链 课件 第2章 智慧供应链的需求预测.pptx
- 第3章 智慧供应链的订单与排产.pptx
- 智慧供应链 课件 第5章 智慧供应链的智能制造.pptx
- 智慧供应链 课件 第6章 智慧供应链的智慧物流.pptx
- 智慧供应链 课件 第7章 智慧供应链的逆链和溯源.pptx
- 智慧供应链 课件 第8章 智慧供应链的脱碳.pptx
- 智慧供应链 课件 第9章 智慧供应链的韧性.pptx
- 智慧供应链 课件 第10章智慧供应链金融.pptx
- 《智慧供应链》 习题答案.docx
- 算法与数据结构(C++语言版)(冯广慧第2版)习题及答案 第12章课后习题答案.docx
- 计算机信息素养 课件 单元1零距离领略信息技术.pptx
- 计算机信息素养 课件 单元2 使用和管理计算机.pptx
- 信息技术基础 课件 单元3Word基本应用.pptx
- 计算机信息素养 课件 单元4Excel基本应用.pptx
- 计算机信息素养 课件 单元5Powerpoint基本应用.pptx
- 数据可视化分析(Excel 2016+Tableau)(第2版) 课件 第1--3章 数据分析概述、 数据类型与获取方法、 数据处理.pptx
- 数据可视化分析(Excel 2016+Tableau)(第2版) 课件 第4--6章 数据分析方法、数据展示、数据可视化分析报告.ppt
- 数据可视化分析(Excel 2016+Tableau)(第2版)课件全套 电子 第1--6章 数据分析概述---数据可视化分析报告.pptx
文档评论(0)