波波的数据结构-查找(1)

系列文章目录

波波的数据结构属实上的快,这里将会写些pta的解析,算是复习 预习,帮助我与大家期末不挂科




查找

一、选择题

2-1
顺序查找法适合于存储结构为(B )的线性表。
A.散列存储
B.顺序存储或链式存储
C.压缩存储
D.索引存储
2-2
若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( C)。
A.(n-1)/2
B.n/2
C.(n+1)/2
D.n
解析:(1+2+3…+n-1+n)/n = (n+1)/2
2-3
适用于折半查找的表的存储方式及元素排列要求为( D) 。
A.链接方式存储,元素无序
B.链接方式存储,元素有序
C.顺序方式存储,元素无序
D.顺序方式存储,元素有序
解析:折半查找也叫二分查找,先找出其下标为(n/2)的数,然后进行比较查找。
2-4
当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度(C )。
A.必定快
B.不一定
C.在大部分情况下要快
D.取决于表递增还是递减
解析:如果数据就在头几位那肯定是顺序查找快,二分查找的ASL=log(n+1)-1 顺序查找的ASL=(n+1)/2
2-5
当采用分块查找时,数据的组织方式为 (B ) 。
A.数据分成若干块,每块内数据有序
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块
D.数据分成若干块,每块(除最后一块外)中数据个数需相同
解析:前一块的最大关键字必须小于后一块的最小关键字。
2-6
25.假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,若查找元素54,需依次与哪些元素比较?( C)。
A.3,4,5,7,24,30,42,54
B.5,30,63,54
C.30,63,42,54
D.3,5,30,63,54
解析:12/2=6 找到第6个数字,然后按照二分法查找即可
2-7
已知一个长度为16的顺序表L,其元素按关键字有序排列。若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:(B)
A.4
B.5
C.6
D.7
解析:log(n+1)=log(16+1)=5
2-8
用二分查找从100个有序整数中查找某数,最坏情况下需要比较的次数是:(A)
A.7
B.10
C.50
D.99
解析:log(100+1)=7
2-9
对有18个元素的有序表用二分法查找,则查找第3个元素的比较序列位置值为(B)。
A.9,5,2,3
B.9,4,2,3
C.1,2,3
D.9,5,3
解析:18/2=9 8/2=4 3/2=2
2-10
对一个长度为 10 的排好序的表用二分法查找,若查找不成功,至少需要比较的次数是(B)。
A.4
B.3
C.5
D.6
解析:这题是至少 公式为 2^n>n/2 8>5 选B
2-11
采用二分法找长度为n的线性表时,算法的时间复杂度为____。
2-12
有一个有序表为{1, 3, 9, 12, 32, 41,45, 62, 75, 77, 82, 95, 100},当用二分法查找值82的结点时,()次比较后查找成功。(C)
A.8
B.1
C.4
D.2
解析:45 77 95 82
2-13
折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中(A )比较大小,查找结果是失败。
A.20,70,30,50
B.30,88,70,50
C.20,50
D.30,88,50
解析:按照前面题做法即可
2-14
折半查找对应的判定树中,外部结点是(B )。
A.一次成功查找过程终止的结点
B.一次失败查找过程终止的结点
C.一次成功查找过程中经过的中间结点
D.一次失败查找过程中经过的中间结点
2-15
在散列表中,所谓同义词就是:B
A.两个意义相近的单词
B.具有相同散列地址的两个元素
C.被映射到不同散列地址的一个元素
D.被不同散列函数映射到同一地址的两个元素
2-16
在下列查找的方法中,平均查找长度与结点个数无关的查找方法是:C
A.顺序查找
B.二分法
C.利用哈希(散列)表
D.利用二叉搜索树
解析:顺序查找ASL=(n+1)/2 二分法ALS=log(n+1)-1
2-17
对哈希(HASH)函数H(k)= k MOD m, 一般来说,m应取
A.素数
B.很大的数
C.偶数
D.奇数
解析:素数用来求模不容易发生哈希冲突
2-18
一个哈希函数被认为是“好的”,如果它满足条件()。
A.哈希地址分布均匀
B.满足(B)和©
C.保证不产生冲突
D.所有哈希地址在表长范围内
解析:不可能保证不发生冲突的…所以分布均匀就是好的哈希表
2-20
设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链接法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个记录。
A.3
B.2
C.1
D.4
解析:14 27 1 79
2-21
哈希表的平均查找长度是(B)的函数。
A.哈希表的长度
B.哈希表的装填因子
C.哈希函数
D.表中元素的多少
解析:ASL记录数相加/装填个数
2-22
将M个元素存入用长度为S的数组表示的散列表,则该表的装填因子为 D
A.S+M
B.M−S
C.M×S
D.M/S
2-23
设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。元素59存放在散列表中的地址是:D
A.8
B.9
C.10
D.11
解析:26%17=9 25%17=8 72%17=4 38%17=4 8%17=8 18%17=1 59%17=8
下面是每个数字的位置:9 8 4 5 10 1 11
2-24
假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行多少次探测?(D)
A.K−1
B.K
C.K+1
D.K(K+1)/2
解析:因为互为同义词,相当于顺序查找,因此选D
2-25
采用线性探测法解决冲突时所产生的一系列后继散列地址:C
A.必须大于等于原散列地址
B.必须小于等于原散列地址
C.可以大于或小于但不等于原散列地址
D.对地址在何处没有限制
在这里插入图片描述
解析:6%11=6 25%11=3 39%11=6 61%11=6 按照题中的方法,位置依次为 6 3 7 5可以参照下图的做法在这里插入图片描述
2-27
现有长度为 7、初始为空的散列表HT,散列函数H(k)=k%7,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT后,查找成功的平均查找长度是:(2)
A.1.5
B.1.6
C.2
D.3
解析:22%7=1 43%7=1 15%7=1 因此 记录的次数依次为3 2 1 ASL=(3+2+1)/3=2
2-28
在散列存储中,装填因子α的值越大,则( )。
A.存取元素时发生冲突的可能性就越大
B.存取元素时发生冲突的可能性就越小
C.存取元素时不可能发生冲突
D.毫无影响
解析:装填因子大说明数组长度小
2-29
给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用分离链接法解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)A
A.1, 3, 3, 9, 4, 9, 9
B.1, 3, 4, 9, 7, 5, -1
C.1, 3, 4, 9, 5, 0, 8
D.1, 3, 4, 9, 5, 0, 2
解析:除模后依次为 1 3 3 9 4 9 9 除余即可得下标。
2-30
给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用平方探测解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)C
A.1, 3, 3, 9, 4, 9, 9
B.1, 3, 4, 9, 7, 5, -1
C.1, 3, 4, 9, 5, 0, 8
D.1, 3, 4, 9, 5, 0, 2
解析:和上面的平方探测法一样的做法、在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值