上传第9章查找习题.docx
- 文档编号:3303827
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:4
- 大小:20.23KB
上传第9章查找习题.docx
《上传第9章查找习题.docx》由会员分享,可在线阅读,更多相关《上传第9章查找习题.docx(4页珍藏版)》请在冰豆网上搜索。
上传第9章查找习题
8.1选择题1.顺序查找法适合于存储结构为()的线性表。
A)散列存储B)顺序存储或链接存储C)压缩存储D)索引存储【答案】B2.下面哪些操作不属于静态查找表()A)查询某个特定元素是否在表中B)检索某个特定元素的属性C)插入一个数据元素D)建立一个查找表【答案】C3.下面描述不正确的是()A)顺序查找对表中元素存放位置无任何要求,当n较大时,效率低。
B)静态查找表中关键字有序时,可用二分查找。
C)分块查找也是一种静态查找表。
D)经常进行插入和删除操作时可以采用二分查找。
【答案】D4.散列查找时,解决冲突的方法有()A)除留余数法B)数字分析法C)直接定址法D)链地址法【答案】D5.若表中的记录顺序存放在一个一维数组中,在等概率情况下顺序查找的平均查找长度为()2A)O
(1)B)O(logn)C)O(n)D)O(n)2【答案】C
6.对长度为4的顺序表进行查找,若第一个元素的概率为1/8,第二个元素的概率为1/4,第三个元素的概率为3/8,第四个元素的概率为1/4,则查找任一个元素的平均查找长度为()A)11/8B)7/4C)9/4D)11/4【答案】C【解析】对顺序表查找,ASL=,代入题目得:
ASL=4*(1/8)+3*(1/4)+2*(3/8)+1*(1/4)=9/47.静态查找表与动态查找表二者的根本差别在于()A)它们的逻辑结构不一样B)施加在其上的操作不同C)所包含的数据元素的类型不一样D)存储实现不一样【答案】B8.若查找表中的记录按关键字的大小顺序存放在一个一维数组中,在等概率情况下二分法查找的平均检索长度是()2A)O(n)B)O(logn)C)O(nlogn)D)O((logn))222【答案】B11.请指出在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。
A)2B)3C)4D)5【答案】C12.从具有n个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为()。
2A)O(n)B)O
(1)C)O(logn)D)O(n)2【答案】C
14.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分()个结点最佳。
A)10B)25C)6D)625【答案】B15.采用分块查找法(块长为s,以二分查找确定块)查找长度为n的线性表时,每个元素的平均查找长度为()A)s+nB)logn+s/2C)log(n/s+1)+s/2D)22(n+s)/2【答案】C16.对一棵二叉排序树根结点而言,左子树中所有结点与右子树中所有结点的关键字大小关系是()A)小于B)大于C)等于D)不小于【答案】A17.若二叉排序树中关键字互不相同,则下面命题中不正确的是()A)最小元和最大元一定是叶子B)最大元必无右孩子C)最小元必无左孩子D)新结点总是作为叶结点插入二叉排序树【答案】A18.设二叉排序树中关键字由1至1000的整数构成,现要查找关键字为363的结点,下述关键字序列()不可能是在二叉排序树上查找到的序列?
A)2,252,401,398,330,344,397,363B)924,220,911,244,898,258,362,363C)2,399,387,219,266,382,381,278,363D)925,202,911,240,912,245,363【答案】D
19.在初始为空的散列表中依次插入关键字序列(MON,TUE,WED,THU,FRI,SAT,SUN),散列函数为H(k)=iMOD7,其中,i为关键字k的第一个字母在英文字母表中的序号,地址值域为[0:
6],采用线性再散列法处理冲突。
插入后的散列表应该如()所示。
A)0123456THUTUEWEDFRISUNSATMONB)0123456TUETHUWEDFRISUNSATMONC)0123456TUETHUWEDFRISATSUNMOND)0123456TUETHUWEDSUNSATFRIMON【答案】B20.若根据查找表建立长度为m的散列表,采用线性探测法处理冲突,假定对一个元素第一次计算的散列地址为d,则下一次的散列地址为()。
A)dB)(d+1)%mC)(d+1)/mD)d+1【答案】B21.若根据查找表建立长度为m的散列表,采用二次探测法处理冲突,假定对一个元素第一次计算的散列地址为d,则第四次计算的散列地址为()。
A)(d+1)%mB)(d-1)%mC)(d+4)%mD)(d-4)%m【答案】D22.下面有关散列查找的说法中正确的是()A)直接定址法所得地址集合和关键字集合的大小不一定相同。
B)除留余数法构造的哈希函数H(key)=keyMODp,其中P必须选择素数。
C)构造哈希函数时不需要考虑记录的查找频率。
D)数字分析法适用于对哈希表中出现的关键字事先知道的情况。
【答案】D23.下面有关散列冲突解决的说法中不正确的是()A)处理冲突即当某关键字得到的哈希地址已经存在时,为其寻找另一个空地址。
B)使用链地址法在链表中插入元素的位置随意,即可以是表头表尾,也可以在中间。
C)二次探测能够保证只要哈希表未填满,总能找到一个不冲突的地址。
D)线性探测能够保证只要哈希表未填满,总能找到一个不冲突的地址。
【答案】C24.设哈希表长m=14,哈希函数H(key)=key%11。
表中已有4个结点:
addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7其余地址为空,如用二次探测处理冲突,关键字为49的结点的地址是()A)8B)3C)5D)9【答案】D8.2填空题1.在散列函数H(key)=key%p中,p应取_____________。
【答案】素数2.采用分块查找法(块长为s,以顺序查找确定块)查找长度为n的线性表时的平均查找长度为_____________。
【答案】(n/s+1)/2+13.己知一个有序表为(12,18,20,25,29,32,40,62,83,90,95,98),当二分查找值为29和90的元素时,分别需要_____________次和_____________次比较才能
查找成功;若采用顺序查找时,分别需要_____________次和_____________次比较才能查找成功。
【答案】
(1)4
(2)4(3)5(4)104.从一棵二叉排序树中查找一个元素时,若元素的值等于根结点的值,则表明_____________,若元素的值小于根结点的值,则继续向_____________查找,若元素的值大于根结点的值,则继续向_____________查找。
【答案】
(1)查找成功
(2)左子树(3)右子树5.二分查找的存储结构仅限于_____________,且是_____________。
【答案】
(1)顺序存储结构
(2)有序6.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数为_____________个,比较二次查找成功的结点数为_____________,比较三次查找成功的结点数为_____________,比较四次查找成功的结点数为_____________,比较五次查找成功的结点数为_____________,平均查找长度为_____________。
【答案】
(1)1
(2)2(3)4(4)8(5)5(6)3.77.在对有20个元素的递增有序表作二分查找时,查找长度为5的元素的下标从小到大依次为_____________。
(设下标从1开始)【答案】4,9,14,17,208.对于线性表(70,34,55,23,65,41,20,100)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有_____________个,散列地址为7的元素有_____________个。
【答案】
(1)2
(2)29.索引顺序表上的查找分两个阶段:
_____________、_____________。
【答案】
(1)确定待查元素所在的块
(2)在块内查找待查的元素
10.分块查找中,要得到最好的平均查找长度,应对256个元素的线性查找表分成_____________块,每块的最佳长度是_____________。
若每块的长度为8,则等概率下平均查找长度为_____________。
【答案】
(1)16
(2)16(3)21【解析】分块查找的平均查找长度由两部分组成——查找索引表确定所在块的平均查找长度Lb和在块中查找元素的平均查找长度Lw,即ASLbs=Lb+Lw=(b+s)/2+1,其中s为每块的长度,b为所分的快数。
由数学知识可知当s=时,ASLbs可取得最小值+1。
因此,可得每块的最佳长度是16,应将查找表分为16块。
若每块的长度为8,则b=32,因此ASLbs=Lb+Lw=(b+s)/2+1=21。
11._____________是一棵二叉树,如果不为空,则它必须满足下面的条件:
A)若左子树不空,则左子树上所有结点的值均小于根的值。
B)若右子树不空,则右子树上所有结点的值均大于根的值。
C)其左右子树均为二叉排序树。
【答案】二叉排序树13.假定有k个关键字互为同义词,若用线性探测法把这些同义词存入散列表中,至少要进行_____________次探测。
【答案】1+2+3...+(k-1)+k=k(k+1)/2【解析】在散列表的一连串连续空间内,第一个关键字只需探测一次,第二个就要探测2次,如此这般,第k个关键字就要探测k次才能找到位置存放。
8.4应用题1.顺序查找时间为O(n),二分法查找时间为O(log2n),散列法为O
(1),为什么有高效率的查找方法而低效率的方法不被放弃?
【答案】不同的查找方法适用的范围不同,高效率的查找方法并不是在所有情况下都比其他查找方法效率要高,而且也不是在所有情况下都可以采用。
2.对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?
【答案】n-1次【解析】设变量max和min用于存放最大元和最小元(的位置),第一次取两个元素进行比较,大的放入max,小的放入min。
从第2次开始,每次取一个元素先和max比较,如果大于max则以它替换max,并结束本次比较;若小于max则再与min相比较,在最好的情况下,比较下去都不用和min相比较,所以这种情况下,至少要进行n-1次比较就能找到最大元和最小元。
3.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度:
(1)查找不成功,即表中无关键字等于给定值K的记录;
(2)查找成功,即表中有关键字等于给定值K的记录。
【答案】
(1)不成功时需要n+1次比较
(2)成功时平均为(n+1)/2次【解析】有序表和无序表顺序查找时,都需要进行n+1次比较才能确定查找失败。
因此平均查找长度都为n+1。
查找成功时,平均查找长度都为(n+1)/2,有序表和无序表也是一样的。
因为顺序查找与表的初始序列状态无关。
4.设有序表为(a,b,c,d,e,f,g,h,i,j,k,p,q),请分别画出对给定值a,g和n进行折半查找的过程。
【答案】
(1)查找a的过程如下(圆括号表示当前比较的关键字),经过三次比较,查找成功。
(2)g的查找过程如下,一次比较成功。
[abcdef(g)hijkpq](3)n的查找过程如下,经过四次比较,查找失败。
5.为什么有序的单链表不能进行折半查找?
【答案】因为链表无法进行随机访问,如果要访问链表的中间结点,就必须先从头结点开始进行依次访问,这就要浪费很多时间,还不如进行顺序查找,而且,用链存储结构将无法判定二分的过程是否结束,因此无法用链表实现二分查找。
6.构造有12个元素的二分查找的判定树,并求解下列问题:
(1)各元素的查找长度最大是多少?
(2)查找长度为1、2、3、4的元素各有多少?
具体是哪些元素?
(3)查找第5个元素依次要比较哪些元素?
【答案】12个元素的判断树如下图所示:
(1)最大查找长度是树的深度4。
(2)查找长度为1的元素有1个,为第6个,查找长度为2的元素有2个,为第3个和第9个,查找长度为3的元素有4个,为第1、4、7、11个,查找长度为4的元素有5个,为第2、5、8、10、12个。
(3)查找第五个元素依次比较6,3,4,5。
7.以数据集合{1,2,3,4,5,6}的不同序列为输入,构造4棵高度为4的二叉排序树。
【答案】图
(1)图
(2)图(3)图(4)8.直接在二叉排序树中查找关键码K与从中序遍历输出的有序序列中用二分查找法查找关键码K,其数据比较次数是否相同?
【答案】不相同。
【解析】因为二分查找得到的判定树和二叉排序树的形状不一定相同。
10.设散列函数为h(key)=key%101,解决冲突的方法为线性探测,表中用"-1"表示空单元。
(1)若删去散列表HT中的304(即令HT[1]=-1)之后,在表HT中查找707将会发生什么?
(2)若将删去的表项标记为"-2",查找时探测到"-2"继续向前搜索,探测到"-1"时终止搜索。
请问用这种方法删去304后能否正确地查找到707?
【答案】
(1)查找707时,首先根据散列函数计算得出该元素应在散列表中的0单元,但是在0单元没有找到,因此将向下一单元探测,结果发现该单元是-1(为空单元),所以结束查找,这将导致707无法找到。
(2)如果改用"-2"作为删除标记,则可以正确找到707所在的结点。
12.设散列函数为H(k)=k%11,采用拉链法处理冲突,将上例中关键字序列依次存储到散列表中,并求出在等概率情况下的平均查找长度。
【答案】
在等概率情况下成功的平均查找长度为:
(1*5+2*2+3*1+4*1)/9=16/9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上传 查找 习题