第10章 查找
数据结构第九章--查找-习题及答案

第九章查找一、选择题1•若查找每个记录的概率均等,则在具有n 个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL 为()。
A .(n-1)/2B.n/2C.(n+1)/2D.n 2. 下面关于二分查找的叙述正确的是()A. 表必须有序,表可以顺序方式存储,也可以链表方式存储C.表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型D.表必须有序,且表只 能以顺序方式存储3. 用二分(对半)查找表的元素的速度比用顺序法() A. 必然快B.必然慢C.相等D.不能确定4. 具有12个关键字的有序表,折半查找的平均查找长度()A.3.1B.4C.2.5D.55.当采用分块查找时,数据的组织方式为()A. 数据分成若干块,每块内数据有序B. 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同6. 二叉查找树的查找效率与二叉树的((1))有关,在((2))时其查找效率最低(1) :A.高度B.结点的多少C.树型D.结点的位置(2) :A.结点太多B.完全二叉树C.呈单枝树D.结点太复杂。
7. 对大小均为n 的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失败,它们的平均查找长度是((1)),对于查找成功,他们的平均查找长度是((2))供选择的答案:A.相同的B.不同的9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是()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)10. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A 的左孩子的平衡因子为0右孩子的平衡因子为1,则应作()型调整以使其平衡。
习题第九章查找答案

第九章查找一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( C )。
【北京航空航天大学 2000 一、8 (2分)】A. (n-1)/2 B. n/2 C. (n+1)/2 D. n2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( A ) 【南京理工大学1998一、7(2分)】A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/23. 下面关于二分查找的叙述正确的是 ( D ) 【南京理工大学 1996 一、3 (2分)】A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储4. 对线性表进行二分查找时,要求线性表必须( B )【燕山大学 2001 一、5 (2分)】A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序5.适用于折半查找的表的存储方式及元素排列要求为( D ) 【南京理工大学 1997 一、6 (2分)】A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序6.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( C ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减【南京理工大学 1997 一、7 (2分)】7.当采用分快查找时,数据的组织方式为 ( B ) 【南京理工大学 1996 一、7 (2分)】A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同8. 二叉查找树的查找效率与二叉树的( (1)C)有关, 在 ((2)C)时其查找效率最低【武汉交通科技大学1996 一、2(4分)】(1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置(2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。
大一上学期第10章 程序设计基础

2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
数据结构 (C语言版) (第二版)(目录)

数据结构(C语言版)(第二版)(目录)第1章导论
1 算法和数据结构
2 什么是数据结构
3 符号,引理,定理与证明
4 说明文篇
5 C语言和程序设计
6 总结
第2章算法分析
1 算法的衡量标准
2 时间和空间复杂度分析
3 运行时复杂度分析
4 递归分析
第3章线性表
1 一维数组
2 线性表
3 顺序表
4 链表
5 循环链表
6 树表
7 双向链表
第4章栈
1 栈的定义
2 栈的抽象数据类型
3 栈的基本操作
4 栈的应用——后缀表达式的求算
第7章树
1 树的定义
2 树的抽象数据类型
3 树的存储
4 树的遍历
5 二叉树
6 二叉排序树(搜索树)
7 平衡二叉树
8 哈夫曼树
9 图的存储
第8章查找
1 静态查找
2 哈希表
3 动态单值查找
第10章数据结构综合应用
1 树的遍历
2 贪心法
3 回溯法
4 分析与评价
附录 A C语言库
1 算法入口及时区函数
2 内存处理函数
3 字符串处理函数
4 文件处理函数
附录 B 内存分配方式。
数据结构复习题-第10章答案2014-6-16

第10章内部排序一、选择题(每小题1分,共10分)1.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后放在已排序序列的合适位置,该排序方法称为( A )排序法。
A.插入排序B.选择排序C.希尔排序D.二路归并排序2.下列排序算法中( C )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A.选择B.冒泡C.归并D.堆3.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( C )。
A. 38, 40, 46, 56, 79, 84B. 40, 38, 46, 79, 56, 84C. 40, 38,46, 56, 79, 84D. 40, 38, 46, 84, 56, 794.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( C )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序5.为实现快速排序算法,待排序序列宜采用的存储方式是( A )。
A. 顺序存储B. 散列存储C. 链式存储D. 索引存储6.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( B )。
A. 79, 46, 56, 38, 40, 84B. 84, 79, 56, 38, 40, 46C. 84, 79, 56, 46, 40, 38D. 84, 56, 79, 40, 46, 387.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( C )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序8.在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是( D )。
A.希尔排序B.冒泡排序C.直接插入排序D.直接选择排序9.堆是一种有用的数据结构。
第十章 新酶的发现与筛选

3
微生物作为酶源的优点
( 2 )培养简便、繁殖快、发酵周期短, 能控制培养条件大幅度提高酶的产量。 ( 3 )微生物易变异,可采用各种遗传变 异手段,培育出新的、更理想的菌株。
2018/8/5
第10章 新酶的发现与筛选
4
二、 微生物新酶的获取途径
购买商品化的酶
购买产酶微生物
获取途径 从自然界筛选产酶微生物
第10章 新酶的发现与筛选
41
示例1 基因组序列搜索
查找基因组序列:Kluyveromyces lactis 搜索基因组序列中的还原酶 reductase
2018/8/5
第10章 新酶的发现与筛选
42
2、 基因挖掘法
基因组狩猎原理
以已知酶为探针,与整个数据库的酶进行比 对,获得中等相似度( 50%~70% )的酶进行克 隆表达,通过功能筛选并获得所需要的酶。
2018/8/5
第10章 新酶的发现与筛选
43
2018/8/5
44
示例2 数据库比对寻找相似酶序列
酶探针的氨基酸序列
NADPH-dependent alpha-keto amide reductase [Kluyveromyces marxianus]
GenBank: BAP73216.1
1 61 121 181 241 301 MTNQKFFTLS AETYKTYPEL IHSPFFDKDL FSPFLQNQTP QVLLLWVYKR YTKYNSEAQK NGNKIPAVAV GAALKETKKP NIDLETAWKQ GIVEFSQKND GILPVTTSAK VGTGTKWYKA REEIFITDKF LEELYKSGKA ILLEAYSPLG IERIKQAQDI EETDATFSQE SSLHKISEDP KNIGVSNFTV PLQKKPADAD FSFDLTEEEV LTDIVKLSLD KSALETALKK EDLKKVLAIA QQPFYQYLKE KKITDLGLQH TVPGIVHIDA LGVDYVDLYL EIKPQVNQIE LSEKYNKTEA EPVRLYWVDF
FORTRAN95第十章 排序、查找算法

给定值与处于顺序表“中间位置”上的元素的关键字进行比较键字则在表的后半部分继续进行二 分查找。否则在表的前半部分继续进行二分查找, 如此进行下去直 至找到满足条件的元素,或当前查找区为空。
10.1.4 直接插入排序 直接插入排序的方法是将待排记录分成两部分,初始第
一部分只含1个记录,在排序进程中把第二部分的全部记 录逐步插入到第一部分,并使该部分每次插入记录后是有 序的。直接插入排序算法步骤:
(1)将n个待排的记录数据存一维数组A中,默认A(1)为第 一部分的记录,2=>I;
(2)若I<=n, 则第二部分的一个记录A(I)与第一部分记 录进行比较, 找出在第一部分插入这个记录的位置,然后 将该位置上原来的记录及其后面所有的记录顺序后移一 个位置,在空出的位置上插入这个记录;若I>n (表示把 第二部分的记录全部插入到第一部分) ,则结束排序;
10.1.2 冒泡排序 冒泡排序是通过相邻两个排序记录的关键字的比
较,按一定次序互换逐步实现有序排序。 冒泡排序的实现过程是:第一次冒泡排序,首先将第
一个记录的关键字和第二个记录的关键字进行比较, 若不满足顺序的要求,则将两个记录进行交换,然
后比较第二个记录和第三个记录的关键字并做同样
处理,依次类推,直至对第n-1个记录和第n个记录 进行比较并处理完, 使得关键字值最大的记录被交换 到了最后一个记录的位置上。第二次冒泡排序只需
integer::low,high,key,ix,mid integer,dimension(low:high):: a do while(low<=high)
第十章 分支限界法

1
1
0
0
1
2011-5-24 10.1 0-1背包问题的解空间树 上海师范大学计算机系 胡金初 图 背包问题的解空间树
1110来自000
7
10.2 0-1背包问题 背包问题
设物品包的重量为数组w[16,15,15],价值为p[45,25,25], 设物品包的重量为数组w[16,15,15],价值为p[45,25,25], w[16 ],价值为p[45 总容量为c=30。 c=30 总容量为c=30。 用队列式(FIFO) 1、用队列式(FIFO)分支界限法求背包问题 仍以图1为例,我们求的基本步骤如下: 仍以图1为例,我们求的基本步骤如下: 根结点A首先进入列表;如图10 10. 1)根结点A首先进入列表;如图10.2
返回目录
2011-5-24 上海师范大学计算机系 胡金初 6
10.1 分支限界的策略
10.2 0-1背包问题 背包问题
假设有三个不同重量和不同价值的物品, 假设有三个不同重量和不同价值的物品,而存放的容量却有 所以我们要根据实际情况,将物品放入, 限,所以我们要根据实际情况,将物品放入,从而让这个背 包中物品的价值量最大。 包中物品的价值量最大。 0-1背包问题的解空间树(问题的所有解构成的一棵树)如 背包问题的解空间树( 背包问题的解空间树 问题的所有解构成的一棵树) 下图: 1”表示放入物品 表示放入物品, 0”表示不放入物品 下图: “1”表示放入物品,“0”表示不放入物品 所有解为( 所有解为(0,0,0)、(0,1,0)、(0,0,1)、(1,0, 0 ) 、 ( 0,1 , 1 ) 、(1 , 0 , 1)、 ( 1 , 1,0 ) 、 ( 1,1 , 1)
A
图10.2根结点 首先进入列表 根结点A首先进入列表 根结点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
( )7、下面关于二分查找的叙述正确的是。
A)表必须有序,表可以顺序方式存储,也可以链表方式存储;
C)表必须有序,而且只能从小到大排列;
B)表必须有序且表中数据必须是整型,实型或字符型;
D)表必须有序,且表只能以顺序方式存储;
( ) 14.长度为12的有序表采用顺序存储结构,使用二分查找技术,在等概率情况下,查找成功时的平均查找长度是。
A. 37/12
B. 62/13
C. 39/12
D. 49/13
( ) 14、折半查找法要求查找表中各元素的关键字必须是排列。
A)递增或递减 B)递增 C)递减 D)无序
( ) 13、一棵7阶B-树的根结点及非根分支结点所包含的关键字的个数至少分别为A)1,3 B)2,4 C)3,5 D) 6,6
2、设有100个元素,用折半查找法进行查找时,在查找成功的情况下,最大比较次数是_____ 。
A.100
B.50
C.99
D.7
4、指出在顺序表{2、
5、7、10、14、15、18、23、35、41、52}中,用二分法查找12,需做多少次比较。
______
A、2
B、3
C、4
D、5
6、从二叉排序树中查找一个元素时,其时间复杂度大致为________。
A、 O(n)
B、 O(1)
C、 O(log2n)
D、 O(n2)
1.顺序查找法适合于存储结构为()的线性表。
(A)散列存储(B)顺序存储或链接存储(C)压缩存储(D)索引存储
2.对线性表进行二分查找时,要求线性表必须()。
(A)以顺序方式存储(B)以链接方式存储
(C)以顺序方式存储,且结点按关键字有序排序
(D)以链接方式存储,且结点按关键字有序排序
3.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()
(A)n (B)n/2(C)(n+1)/2(D)(n-1)/2
4.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为()
(A)O(n2)(B)O(log2n)(C)O(n)(D)O(log2n)
5.二分查找和二叉排序树的时间性能()。
(A)相同? (B)不相同? (C)无法比较
6.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,()次比较后查找成功。
(A)1(B)2(C)4(D)8
8.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找
成功所需的平均比较次数为(? )
(A)35/12(B)37/12(C)39/12(D)43/12
9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分()个结点最佳。
(A)10(B)25(C)6(D)625
10.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用()查找方法。
(A)分块(B)顺序(C)二分(D)散列
二、填空题
4、在有序表A[1]~A[20]中,按二分查找方法进行查找,查找长度为2的元素的下标从小到大依次是________ __ 。
6、有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,经过次比较后查找成功。
7、有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为9的结点时,经过 2 次比较后查找成功。
22. 平衡二叉排序树上所有节点的平衡因子只能是。
23、一棵m阶的B-树,树中每个节点最多有棵子树,除根节点之外的所有非终端节点最少有棵子树。
1.顺序查找法的平均查找长度为__________,二分查找法的平均查找长度为________,分块查找法(以顺序查找确定块)的平均查找长度为__________,分块查找法(以二分查找确定块〉的平均查找长度为_________,哈希表查找法采用链接法处理冲突时的平均查找长度为_________。
2.在各种查找方法中,平均查找长度与结点个数n无关的查法方法是_________
3.二分查找的存储结构仅限于_________,且是__________。
4.在分块查找方法中,首先查找__________,然后再查找相应的___________。
5.长度为255的表,采用分块查找法,每块的最佳长度是____________。
7.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数为_________,则比较二次查找成功的结点数为__________,则比较三次查找成功的结点数为_________,则比较四次查找成功的结点数为________,则比较五次查找成功的结点数为_________,平均查找长度为_________。
8.对于长度为n的线性表,若进行顺序查找,则时间复杂度为__________,若采用二分法查找,则时间复杂度为_________。
9.己知一个有序表为(12,18,20,25,29,32,40,62,83,90,95,98),当二分查找值为29和90的元素时,分别需要________次和____________次比较才能查找成功;若采用顺序查找时,分别需要___________次和_________次比较才能查找成功。
三、判断题
7、折半查找只适用于有序表,包括有序的顺序表和有序的链表。
()
8、折半查找方法可以用于按值有序的线性链表的查找。
()
4.平衡二叉排序树上任何一个结点的左、右子树的高度之差的绝对值不大于2()
1.用二分查找法对一个顺序表进行查找,这个顺序表可以是按各键值排好序的,也可以是没有按键值排好序的。
()
四、应用题
4、用序列(46,88,45,39,70,58,101,10,66,34)建立一个平衡的二叉排序树,画出该树。
2、(9分)一棵二叉排序树结构如下,各节点的值从小到大依次为1-9,请标出各节点的值。
1、已知一棵二叉排序树如图所示,其各结点的值虽然未知,但其序列为{1,
12,5,8,3,10,7,13,9},请标注各结点的值。
(9分)
4、已知一表为(49,66,73,52,40,37,65,43),使按表中元素的次序依次插入一棵初始为空的二叉排序树,画出表中元素构成的二叉排序树。
3.已知一组元素为(50,28,78,65,23,36,13,42,71),请完成以下操作:
(1)画出按元素排列顺序逐点插入所生成的二叉排序树BT。
(2)分别计算在BT中查找各元素所要进行的元素间的比较次数及平均比较次数。
(3)画出在BT中删除(23〉后的二叉树。
5、已知一棵三阶的B-树如下图所示,假定依次删除关键字46,24,8,15请画出每次删除
结点后树的情况:
五、算法题(一)算法理解题
(二)算法填空题
(三)算法设计题。