数据库系统l试题库及答案 第9章 查找.docx
- 文档编号:8482276
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:192.15KB
数据库系统l试题库及答案 第9章 查找.docx
《数据库系统l试题库及答案 第9章 查找.docx》由会员分享,可在线阅读,更多相关《数据库系统l试题库及答案 第9章 查找.docx(15页珍藏版)》请在冰豆网上搜索。
数据库系统l试题库及答案第9章查找
第9章查找
9.1知识点:
静态查找表
一、填空题
1.在数据的存放无规律而言的线性表中进行检索的最佳方法是。
2.查找表是由构成的集合。
3.若对查找表只做“查询某个特定的数据元素是否在查找表中”和“查询某个特定的数据元素的各种属性”操作,则称此类查找表为。
若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素,则称此类查找表为。
4.在n个记录的有序顺序表中进行折半查找,最大的比较次数为。
5.是顺序查找的一种改进方法,又称索引顺序查找,具体实现为将一个主表分成n个子表,要求子表之间元素是按,而子表中元素可以无序的,用每个子表最大关键字和指示块中第一个记录在表中位置建立。
6.分块查找的时间复杂度是。
7.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为次;当使用监视哨时,若查找失败,则比较关键字的次数为次。
8.由于查找运算的主要运算是关键字的比较,所以通常把______________作为衡量一个查找算法效率优劣的标准。
它的计算公式为________________________________________。
二、选择题
1.()在表长为n的链表中进行顺序查找,它的平均查找长度为()。
A.ASL=nB.ASL=(n+1)/2
C.ASL=
+1D.ASL≈log2(n+1)-1
2.()采用折半查找方法查找长度为n的线性表时,平均时间复杂度为()。
A.O(n2)B.O(nlogn)C.O(n)D.O(logn)
3.()折半查找有序表(4,6,10,12,20,30,50,70,88,100)。
若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。
A.20,70,30,50B.30,88,70,50C.20,50D.30,88,50
4.()有序线性表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索()次。
A.8B.9C.7D.6
5.只有在顺序存储结构上才能实现的查找方法是()。
A.顺序查找B.二分查找C.树形查找D.哈希查找
三、判断题
1.()在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。
2.()有n个数存放在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。
3.()顺序查找法适用于存储结构为顺序或链式存储的线性表。
4.()折半查找法适用于存储结构为顺序或链式存储的线性表。
5.()折半查找法要求查找表有序或无序均可。
四、简答题
1.试述顺序查找法、二分查找法和分块查找法对被查找的表中元素的要求。
对长度为n的表来说,3种查找法在查找成功时的平均查找长度各是多少?
2.假定对有序表:
(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:
(1)画出描述折半查找过程的判定树;
(2)若查找元素54,需依次与哪些元素比较?
(3)若查找元素90,需依次与哪些元素比较?
(4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。
3.对于给定11个数据元素的有序表{2,3,10,15,20,25,28,29,30,35,40},采用二分查找,假设查找表中每
个元素的概率相同,求查找成功时的平均查找长度和查找不成功时的平均查找长度。
4.有一个2000项的表,要采用等分区间顺序查找的分块查找法,问:
(1)每块理想长度是多少?
(2)分成多少块最为理想?
(3)平均查找长度ASL为多少?
(4)若每块是20个数据元素,ASL为多少?
五、算法设计题
1.顺序存储的有序表S设计折半查找的算法(递归和非递归两种方法)。
9.2知识点:
动态查找表
一、填空题
1.从供选择的答案中,选出应填入下面叙述内的最确切的解答,把相应编号写在答卷的对应栏内。
在二叉排序树中,每个结点的关键码值A,B一棵二叉排序,即可得到排序序列。
同一个结点集合,可用不同的二叉排序树表示,人们把平均检索长度最短的二叉排序树称作最佳二叉排序树,
最佳二叉排序树在结构上的特点是C。
供选择的答案为:
A:
①比左子树所有结点的关键码值大,比右子树所有结点的关键码值小
②比左子树所有结点的关键码值小,比右子树所有结点的关键码值大
③比左右子树的所有结点的关键码值都大
④与左子树所有结点的关键码值和右子树所有结点的关键码值无必然的大小关系
B:
①前序遍历②中序遍历③后序遍历④层次遍历
C:
①除最下二层可以不满外,其余都是充满的
②除最下一层可以不满外,其余都是充满的
③每个结点的左右子树的高度之差的绝对值不大于1④最下层的叶子必须在最左边
2.平衡因子的定义是。
3.平衡二叉树(AVL树)是指每个结点的平衡因子都为的二叉树或者说每个结点的左右
子树的高度最多差一的二叉树。
4.已知二叉排序树的左右子树均不为空,则上所有结点的值均小于它的根结点,
上所有结点的值均大于它的根结点的值。
5.如果按关键码值递增的顺序依次将关键码值插入到二叉排序树中,假设每个结点的查找概率相同,则对这样的二叉排序树检索时,平均比较次数是。
6.在一棵有N个结点的非平衡二叉树中进行查找,平均时间复杂度的上限(即最坏情况平均时间复杂度)为。
二、选择题
1.()一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有()
结点。
A.2k-1-1B.2k+1C.2k-1+1D.2k-1
2.()二叉排序树的查找效率与二叉树的形态有关,在()时其查找效率最低。
A.结点太多B.完全二叉树C.呈单枝树D.结点太复杂。
3.()分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是()。
A.{100,80,90,60,120,110,130}B.{100,120,110,130,80,60,90}
C.{100,60,80,90,120,110,130}D.{100,80,60,90,120,130,110}
4.()在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子
的平衡因子为0,右孩子的平衡因子为1,则应作()型调整以使其平衡。
A.LLB.LRC.RLD.RR
5.()对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是()。
A.95,22,91,24,94,71B.92,20,91,34,88,35
C.21,89,77,29,36,38D.12,25,71,68,33,34
三、判断题
1.()在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。
2.()对一棵二叉排序树按中序方法遍历得出的结点序列是从小到大的序列。
3.()设二叉排序树中关键字互不相同,则其中最小元素必无左孩子,最大元素必无右孩子。
4.()将线性表中的结点信息组织成平衡的二叉树,其优点之一是总能保证任意检索长度均为
量级(n为线形表中的结点数目)。
5.()在平衡二叉树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转。
6.()在二叉树排序树中凡是新插入的结点,都是没有孩子结点的,总是处在最底层。
7.()N个结点的二叉排序树有多种,其中树高最小的二叉排序树是最佳的。
8.()虽然信息项序列的顺序不一样,但依次生成的二叉排序树却是一样的。
9.()二叉排序树删除一个结点后,仍是二叉排序树。
10.()每个结点的关键字都比左孩子关键字大,比右孩子关键字小,这样的二叉树一定是二叉排序树。
四、简答题
1.已知如下所示长度为12的表:
(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)
(1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
(2)若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。
(3)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
2.已知一组关键字为{25,18,46,2,53,39,32,4,74,67,60,11}。
按表中的元素顺序依次插入到一棵初始为空的二叉排序树中,画出该二叉排序树,并求在等概率的情况下查找成功的平均查找长度和查找失败的平均查找长度。
五、算法设计题
1.试写一个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链表作存储结构。
且树中结点的关键字均不同。
2.设计在二叉排序树中查找指定关键字的结点的非递归算法。
3.利用二叉树遍历的思想设计一个判断二叉树是否为平衡二叉树的算法。
9.3知识点:
哈希表
一、填空题
1.哈希查找的平均查找长度不随的增加而增加,而是随的增大而增加。
2.假设有n个关键字,它们具有相同的Hash函数值,用线性探测方法解决冲突,把这n个关键字散列到大小为n的地址空间中,共计需要做次插入和探测操作。
3.法构造的哈希函数肯定不会发生冲突。
4.在哈希函数H(key)=key%p中,p值最好取。
5.哈希表是通过将关键码按选定的和,把结点按关键码转换为地址进行存储的线性表。
6.在哈希存储中,装填因子的值越大,则;装填因子的值越小,则。
7.在各种查找方法中,其平均查找长度与结点的个数n无关的查找方法是__________________。
二、选择题
1.()从供选择的答案中,选出应填入下面叙述内的最确切的解答,把相应编号写在答卷的
对应栏内。
散列法存储的基本思想是根据A来决定B,碰撞(冲突)指的是C,处理碰撞的两
类主要方法是D。
供选择的答案
A,B:
①存储地址②元素的符号③元素个数④关键码值
⑤非码属性⑥平均检索长度⑦负载因子⑧散列表空间
C:
①两个元素具有相同序号②两个元素的关键码值不同,而非码属性相同
③不同关键码值对应到相同的存储地址④负载因子过大⑤数据元素过多
D:
①线性探查法和双散列函数法②建溢出区法和不建溢出区法
③除余法和折叠法④链地址法和开放定址法
2.()设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造哈希表,哈希函数为H(key)=keyMOD13,散列地址为1的链中有()个记录。
A.1B.2C.3D.4
3.()设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84,
现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是()。
A.8B.3C.5D.9
4.()散列表的平均查找长度()。
A.与处理冲突的方法、哈希函数和装填因子有关
B.与处理冲突的方法无关而与表的长度有关
C.与处理冲突的方法有关而且与表的长度有关
D.与处理冲突的方法无关且与表的长度无关
三、判断题
1.()若散列表的装填因子小于1,则可避免碰撞的发生。
2.()散列函数越复杂越好,因为这样随机性好,冲突概率小。
3.()Hash表的平均查找长度与处理冲突的方法无关。
4.()负载因子(装填因子)是散列表的一个重要参数,它反映散列表的装满程度。
5.()哈希表的结点中只包含数据元素自身的信息,不包含任何指针。
6.()哈希存储法只能存储数据元素的值,不能存储数据元素之间的关系。
7.()哈希冲突是指同一个关键字对应多个不同的哈希地址。
8.()用线性探测处理冲突的哈希表中,哈希函数值相同的关键字总是存放在一片连续的存储单元中。
四、简答题
1.设哈希(Hash)表的地址范围为0~17,哈希函数为:
H(K)=KMOD16。
K为关键字,用线性探测法
再散列法处理冲突,输入关键字序列:
(10,24,32,17,31,30,46,47,40,63,49)造出Hash表,试回答下列问题:
(1)画出哈希表的示意图;
(2)若查找关键字63,需要依次与哪些关键字进行比较?
(3)若查找关键字60,需要依次与哪些关键字比较?
(4)假定每个关键字的查找概率相等,求查找成功时的平均查找长度。
2.设有一组关键字{19、01、23、14、55、20、84、27、68、11、10、77},采用哈希函数为:
H(key)=keymod13,采用链地址法处理冲突,设计此哈希表,并求在等概率的情况下的平均查找长度。
3.将关键字序列{7,8,30,11,18,9,14}散列存储到散列表中,散列表的存储空间是一个下标从0开始的一维数组,散列函数为:
H(key)=(key×3)mod7,处理冲突采用线性探测再散列法,要求装填(载)因子为0.7。
(1)请画出所构造的散列表。
(2)分别计算等概率情况下,查找成功和查找不成功的平均查找长度。
说明:
本题为2010年全国考研题。
第9章查找
9.1知识点:
静态查找表
一、填空题
1.顺序查找(线性查找)2.同一类型的数据元素(或记录)3.静态查找表动态查找表4.∟log2n」+15.分块查找关键字有序排列索引表6.O(m+n)(m是块长度,n是索引表长度)7.nn+1
8.平均查找长度
(其中,n是查找表中记录的个数。
pi是查找第i个记录的概率)
二、选择题
1.B2.D3.A4.B.5.B
三、判断题
1.√2.×3.√4.×5.×
四、简答题
1.3种方法对查找的要求
顺序查找法:
要求表中元素可以按任意次序存放,可以以顺序表或链表存储
二分查找法:
要求标准元素必须以关键字的大小按递增或递减的次序存放而且以顺序表存储。
分块查找法:
要求表中每块内的元素可以按任意次序存放,但块与块之间必须以关键字的大小递增或递减的次序存放,即前一块内所有的元素的关键字都不能大于(或小于)后一块内任何元素的关键字。
3种方法的平均查找长度为:
顺序查找法:
查找成功的平均查找长度为(n+1)/2
二分查找法:
查找成功的平均查找长度为Log2(n+1)-1
分块查找法:
若用顺序查找确定所在的块,查找成功的平均查找长度为(n/s+s)/2+1;若用二分查找确
定所在的块,查找成功的平均查找长度为log2(n/s+1)+s/2.其中s为每块还有的元素个数
2.
(1)先画出判定树如下(注:
mid=⎣(1+12)/2⎦=6):
(2)查找元素54,需依次与30,63,42,54等元素比较;
(3)查找元素90,需依次与30,63,87,95等元素比较;
(4)求ASL之前,需要统计每个元素的查找次数。
判定树的前3层共查找1+2×2+4×3=17次;
但最后一层未满,不能用8×4,只能用5×4=20次,
所以ASL=1/12(17+20)=37/12≈3.08
3.成功时的平均查找长度:
不成功时的平均查找长度:
4.
(1)每块理想长度d=
≈45
(2)块数b=2000/45=45
(3)ASL=(b+1)/2+(d+1)/2=(45+1)/2+(45+1)/2=46
(4)b=2000/20=100(块)每块元素个数d=20
ASL=(b+1)/2+(d+1)/2=(100+1)/2+(20+1)/2=61
五、算法设计题
1.//折半查找的递归算法
intSearch_Bin_Recursive(SSTableST,intkey,intlow,inthigh)
{
if(low>high)return0;//查找不到时返回0
mid=(low+high)/2;
if(ST.elem[mid].key==key)returnmid;
elseif(ST.elem[mid].key>key)
returnSearch_Bin_Recursive(ST,key,low,mid-1);
elsereturnSearch_Bin_Recursive(ST,key,mid+1,high);
}
}//Search_Bin_Recursive
intsearch(SqListS,KeyTypex)//折半查找的非递归算法
//二分查找,返回有序表中大于等于x的元素位置
{
intlow=1,high=L.length;
while(low<=high)
{
mid=(low+high)/2;
if(S.elem[mid].key==x)returnmid
else
if(S.elem[mid].key elselow=mid+1; } } 9.2知识点: 动态查找表 一、填空题 1.A=①B=②C=③2.左子树深度减去右子树深度3.+1、-1、04.左子树右子树5.(n+1)/26.O(n) 二、选择题 1.D2.C3.C4.C5.A 三、判断题 1.×2.√3.√4.√5.×6.√7.√8.×9.√10.× 四、简答题 1. 2.二叉排序树为: 五、算法设计题 1.KeyTypepredt=-32768;//predt保存当前阶段中序前驱的值,初值为负无穷大 boolJudgeBST(BSTNode*bt){ boolb1,b2; if(bt==NULL)returntrue; else{ b1=JudgeBST(bt->lchild);//判断左子树 if(! b1||predt>=bt->key)////判断根节点 returnfalse; predt=bt->key; b2=JudgeBST(bt->rchild);//判断右子树 returnb2; } } 2.BSTNode*BSTSearch(BSTNode*bt,KeyTypek) {BSTNode*p=bt; while(p! =NULL&&p->key! =k) {if(k elsep=p->rchild;//沿右子树查找 } returnp;} 3.balance为平衡二叉树的标记,返回二叉树bt是否为平衡二叉树,若是balance为1,否则为0。 H为二叉树bt的高度。 采用递归先序遍历的判断方法。 voidjudgeAVL(BSTNode*bt,int&balance,int&h) { intbl,br,hl,hr; if(bt==NULL) {h=0;balance=1} elseif(b->lchild==NULL&&bt->rchild==NULL) {h=1;balance=1} else{judgeAVL(bt->lchild,bl,hl); judgeAVL(bt->rchild,br,br); h=(hl>hr? hl: hr)+1; if(abs(hl-hr)<2)balance=bl&br;//&为整数的逻辑与 elsebalance=0;} } 9.3知识点: 哈希表 一、填空题 1.表中结点数目负载因子2.n(n-1)/23.直接定址4.小于等于表长的质数(素数)5.哈希函数解决冲突的方法6.存取元素时发生冲突的可能性就越大存取元素时发生冲突的可能性就越小7.哈希查找 二、选择题 1.A=④B=①C=③D=④ 2.D3.D4.A 三、判断题 1.×2.×3.×4.√5.√6.×7.×8.× 四、简答题 1. (1)hash表如下: 下标 00 11 22 33 44 55 66 77 88 99 110 111 112 113 114 115 116 117 k 332 117 63 49 24 4 40 10 30 31 46 47 探测次数 11 1 1 6 6 3 3 1 1 2 2 1 1 1 1 1 1 3 3 3 3 (2)查找63,首先要与H(63)=63%16=15号单元内容比较,即63vs31,no; 然后顺移,与46,47,32,17,63相比,一共比较了6次! (3)查找60,首先要与H(60)=60%16=12号单元内容比较,但因为12号单元为空(应当有空标记),所以应当只比较这一次即可。 (4)ASL=1/11(6+1*6+2+3×3)=23/11=2.09 2. ASL=(1*7+2*4+3)/12=18/12=1.5 3. (1)hash表如下: 下标 0 1 2 3 4 5 6 7 8 9 关键字 7 14 8 11 30 18 9 探测次数 1 2 1 1 1 3 3 (2)在等概率情况下: ASL成功=(1+2+1+1+1+3+3)/7=12/7=1.71 (3)ASL不成功=(3+2+1+2+1+5+4)/7=18/7=2.57
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统l试题库及答案 第9章 查找 数据库 系统 试题库 答案