第九章:查找复习题
一、 选择题
1、 顺序查找一个共有n个元素的线性表,其时间复杂度为(),折半査找一个具有n个 元
素的有序表,其时间复杂度为()。
A^ 0(n) B、O(log2n) C、0(n2) D、O(nlog2n)
2、 在对长度为n的顺序存储的有序表进行折半杏找,对应的折半杳找判定树的高度为
()。
A、n B、[log2nj C、[log2(n+l)J D、rlog2(n+l)
3、 采用顺序查找方式查找长度为n的线性表时,平均查找长度为( )
A、n B、n/2 C、(n+l)/2 D、(n-l)/2
4、 采用折半查找方法检索长度为n的有序表,检索每个元素的平均比较次数()对应判
定树的高度(设高度大于等于2)。
A、小于B、大于 C、等于 D、大于等于
5、 已知有序表(13, 18, 24, 35, 47, 50, 62, 83, 90, 115, 134),当折半查找值为 90 的元素时,
杏找成功的比较次数为()。
A、1 B、2 C、3 D、4
6、 对线性表进行折半查找吋,要求线性表必须( )o
A、以顺序方式存储 B、以链接方式存储 C、以顺序方式存储,且结点按关键字有序
排序 D、以链接方式存储,且结点按关键字有序排序
7、 顺序查找法适合于存储结构为()的线性表。
A、散列存储B、顺序或链接存储C、压缩存储 D、索引存储
8、 采用分块查找时,若线性表屮共有625个元素,杏找每个元素的概率相同,假设采用顺
序查找來确定结点所在的块时,每块应分()个结点最佳。
A、10 B、25 C、6 D、625
9、 从键盘依次输入关键字的值:t,u,r,b,o,p,a,s,c,l,建立二叉排序树,则其先序遍历序列为
(), 中序遍历序列为()o
A、abcloprstu alcpobsrut C、trbaoclpsu D、trubsaocpl
10、 折半查找和二叉排序树的时间性能( )o
A、相同 B、不相同
11、 一棵深度为k的平衡二叉树,其每个非终端结点的平衡因了均为(),则该树共有
() 个结点。
A、2k_I-l B、2k_l C、2k', + l D、2k-l
12、 利用逐点插入法建立序列{50, 72, 43, 85, 75, 20, 35, 45, 65, 30}对应的二叉排序
树以后,查找元素35要进行( )元索间的比较。
A、4 次 B、5 次 C、7 次 D、10 次
13、 设Hash地址空间为0到m-1,哈希函数为h(k)=k%p,为了减少发生冲突的可能性,
一
般取p为( )
0
A、小于m的最大奇数 B、小于m的最大素数 C、小于m的最大偶数D、小于m的
最大合数。
二、 填空题
1、 折半查找效率较高,但要求结点( )并尺要求线性表( );而对于顺序查
找,
则线性表的存储方式( )
0
2、 假设在有序线性表AL0J-AL9J±进行折半查找,则比较一次查找成功的结点数为(),
比较二次査找成功的结点数为(),比较三次查找成功的结点数为(),比较四次查找
成功的结点数为(),比较五次查找成功的结点数为(),平均查找长度为( )。
3、 在n个记录的有序顺序表中进行折半查找,最大的比较次数是( )。
4、 折半查找判定树既是一种( ),也是一种( )o
5、 顺序查找法的平均查找长度为( );折半查找法的平均查找长度为( );分块查
找法(以顺序查找确定块)的平均查找长度为( );分块查找法(以折半查找确定
块)
的平均查找长度为( );哈希表查找法釆用链接法处理冲突吋的平均查找长度为()
0
6、 对于长度为n的线性表,若进行顺序查找,则时间复杂度为( );若进行折半查找,
则时间复杂度为( );若采用分块查找(假定总块数和每块长度均接近n的开方),则
时
间复杂度为( )。
7、 用二分法查找一个线性表时,该线性表必须具冇的特点是( ),而分块查找法要求
将待杏找的表均匀地分成若干块且块屮诸记录的顺序可以是任意的,但块与块之间()o
8、 采用散列技术來实现查找,需要解决的问题有:( )和
( )o
9、 在散列存储屮,处理冲突有( )和( )两类方法。
10、 ( )法构造的哈希函数肯定不会发住冲突。
11、 在各种查找方法中,平均查找长度与结点个数无关的查找方法为( )o
三、简答题
1、 简述顺序查找、折半查找和分块检索法对被检索表屮元索屮的要求。若检索表屮每
个元素概率和同,则对一个长度为n的表,用上血三种方法检索时平均杳找长度为
多少?
2、 画出长度为10的有序表进行折半查找的一棵判定树,并求其等概率下的平均查找
长度。
3、 有一个10000项线性表,若采卅分区查找,问分成多少块较理想?平均查找长度为
多少?若每块为40,则平均查找长度为多少?
4、 输入一组关键字{17, 31, 13, 11, 20, 35, 25, 8, 4, 11, 24, 40, 27},画出由 此生成的二叉
排序树,如果对每个结点的杳找概率相等,求其ASL,并分别画出下 列操作后的二
叉排序树。(1)插入数据9; (2)删除结点17; (3)再删除结点13。
5、 设有一组关键字{19, 01, 23, 14, 55, 20, 84, 27, 68, 11, 10, 77},釆用哈希 函数:
H(key)=key%13,采用开放地址法的线性探测再散列方法解决冲突,试在() 到18
的Hash地址空间中对该关键字序列构造Hash表。
6、 若哈希表的地址范围为0到9, Hash函数为H(key)=(key2+2)mod 9,并采用链地
址法 处理冲突,画出元素7, 4, 5, 3, 6, 2, 8, 9依次插入哈希表以后该哈希表的状 态。
答案:
一、 选择题
1AB 2D 3C 4A 5B 6C 7B 8B 9CA 10B 11D 12A 13B
二、 填空题
1、 按关键字值大小有序,顺序存储;既可以顺序存储,也可以链接存储。
2、 1, 2, 4, 8, 5, 3.7
3、 log2 (n+l)
4、 二叉排序树,理想平衡树
5、 (n+1 )/2, ((n+ l)*log2(n+1 ))/n-l, (s2+2s+n)/ (2s) , log2(n/s+1 )+s/2, 1 +a/2 (a 为装 填因子)
6、 0(n), O(log2n), 0(n 的开平方)
7、 表中元素必须按关键字有序;必须有序,即前一块中每个元素的关键字必须大 于后一块屮
每个元素的关键字。
8、 选择哈希函数,设定处理冲突的方法
9、 开放定址法,链地址法
10、 直接定址
11、 哈希查找法
三、简答题
1、 对于顺序检索法,表中元素可以以任何方式存放;而采用折半检索法时要求表中元 素必须是
有序的,而「L需耍以顺序方式进行存储;若利用分块检索法,则要求农中元素 需“块”间有序,
但每一块内元素可任意存放。
顺序和折半查找的平均检索长度分别为:(n+l)/2和log
2
(n+l)-lo分块法的平均查 找长度与确定
所在块所采用的检索方法有关,若用顺序法确定块,则长度为(n/s+s)/2+l, 若用折半法确定块,贝IJ
查找长度为log
2
(n/s+D+s/2, -K中s为每块含冇的元索个数。
2、 对长度为10的有序表进行折半查找的判定树如下:
查找成功的平均查找长度为:
ASL= (1*14-2*2+3*4+4*3) /10=2.9
3、分成100块较理想。平均查找长度ASL=(b+s)/2+1 =(100+100)/2+1 = 101 <>若每块长度 为40,则
可分250块,平均查找长度ASL=(b+s)/2+1 = 146。
4 相 应 二 叉 排 序 树 如 下:
平均杳找长度 ASL= (1*1+2*2+3*4+4*2+5*2) /12=35/12
5、依题意,m=19,线性探测再散列的下一地址计算公式为: di=H(key)
dj+i=(dj+l)%m j=l,2,...
构造的Hash表如下:
地址号
0 1 2 3 4 5 6 7 8 9 10 1 12 13 14 15 16 17 18
关键字
1 14 55 27 68 19 20 84 23 11 10
77
地址计
算次数
1 2 1 4 3 1 1 3 1 1 3 2
7、将7, 4, 5, 3, 6, 2, 8, 9依次插入杂凑表后,状态如下
0123456789