第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. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[1..20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ,其下标从小到大依次是1,3,6,8,11,13,16,19______,平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n n n ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)8、设一哈希表表长M 为100 ,用除留余数法构造哈希函数,即H (K )=K MOD P (P<=M ), 为使函数具有较好性能,P 应选( 97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈希查找法10、对线性表进行二分查找时,要求线性表必须以 顺序 方式存储,且结点按关键字有序排列。
第10章__数据库Access2010
打开数据库
10.2.1 数据库的创建与使用
②保存数据库 操作步骤如下: 单击屏幕左上方的“文件”标签,在打开的 Backstage视图中选择“保存”命令,即可保存输入 的信息。 弹出Microsoft Access对话框,提示保存数据库 前必须关闭所有打开对象,单击“是”按钮即可。 或者选择“数据库另存为”命令,可更改数据库 的保存位置和文件名。
10.1.2 Access2010的界面
状态栏
“状态栏”位于窗口底部,用于显示状态信息, 还包含用于切换视图的按钮。
微型工具栏
在Access2010中,可以使用微型工具栏轻松 设置文本格式。用户选择要设置格式的文本后, 微型工具栏会自动出现在所选文本的上方。如果 将鼠标指针靠近微型工具栏,则微型工具栏会渐 渐淡入,用户可以用它来加粗、倾斜、选择字号、 颜色等。如果将鼠标指针移开,则微型工具栏会 渐渐淡出。如果不想使用微型工具栏设置格式, 只需将指针移开一段距离,微型工具栏即会自动 消失。
“外部数据”选项卡
10.1.2 Access2010的界面
“数据库工具”选项卡 利用“数据库工具”选项卡可以完成以下功 能:启动VB编辑器或运行宏、创建或查看表关系、 显示隐藏对象相关性或属性工作表、运行数据库 文档或分析性能、将数据移至数据库、运行链接 表管理器、管理Access加载项、创建或编辑VBA模 块等。
10.2.2 表的建立
创建“联系人”表
表操作
10.2.2 表的建立
使用表设计创建表操作步骤: ①启动Access2010,新建数据库“表示例” ② 切换到“创建”选项卡,单击“表格”组中的 “表设计”按钮,进入表的设计视图。
10.2.2 表的建立
③ 在“字段名称”栏中输入字段的名称“学号”; 在“数据类型”选择该字段的数据类型,这里选择 “数字”选项;“说明”栏可以输入也可以不输入 ④ 用同样的方法,输入其它字段名称,并设置相应 的数据类型。 ⑤ 选择要设为主键(能唯一标识一条记录的字段) 的字段, 在“设计” 选项卡的“工具”组中,单 击 “主键”按钮,即可将其设为主键。
(NEW)李春葆《数据结构教程》(C++语言描述)配套题库【名校考研真题+课后习题+章节题库+模拟试题】
A.有某进程可能永远得不到该类资源 B.必然死锁 C.进程请求该类资源立刻能得到 D.必然无死锁 【答案】D
【解析】3×(2-1)+1=4,所以不会发生死锁。
目 录
第一部分 名校考研真题 一、选择题 二、综合应用题
第二部分 课后习题 第1章 绪 论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查 找 第9章 内排序 第10章 外排序 第11章 数据结构和STL
第三部分 章节题库 第1章 绪 论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查 找 第9章 内排序 第10章 外排序 第11章 数据结构和STL(无)
A.时间片转移 B.静态优先及调度 C.非抢占式作业优先
D.抢占式短作业优先 【答案】A 【解析】时间片转移方法能在一个周期内使每个进程都得到一个时 间片的CPU使用时间,不会产生饥饿的现象,其余三个都会产生饥饿。
15 火车站的售票系统属于( )系统。[北京理工大学考研真题] A.单道批处理 B.多道批处理 C.分时 D.实时 【答案】D 【解析】实时操作系统(RTOS)是指当外界事件或数据产生时,能 够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之 内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源 完成实时任务,并控制所有实时任务协调一致运行的操作系统。火车站 售票系统是典型的实时系统。
A.是不可能出现的 B.是没法解决的 C.就是死锁 D.以上均不正确 【答案】D 【解析】首先,这种情况在多道程序系统中是可能出现的,甚至是 会经常出现的,A项不正确;同时,死锁是指多个进程因竞争资源而形 成的一种僵持局面,若无外力作用,这些进程都将永远不能再向前推 进,B项不正确;通常情况下,进程都在等待彼此已经占据的资源。本 题中的情况没有构成死锁,C项不正确。 22.下列措施中,能加快虚实地址转换的是1增大快表(TLB)2让 页表常驻内存3增大交换区( )。[2014年联考真题] A.仅1 B.仅2 C.仅1,2 D.仅2,3 【答案】C 【解析】加大快表能增加快表的命中率,即减少了访问内存的次 数;让页表常驻内存能够使cpu不用访问内存找页表,从也加快了虚实 地址转换。而增大交换区只是对内存的一种扩充作用,对虚实地址转换
《经典常谈》第十章节内容归纳及同步练习2022-2023学年度部编委语文八年级下册
《经典常谈》第10章节《诸子》归纳及章节练习(附答案)【内容要点梳理】社会背景:春秋末年,封建制度开始崩坏,在这个大变动当中,一些才智之士对于当前的情势,有种种的看法,有种种的主张;他们都想收拾那动乱的局面,让它稳定下来,他们根据自己的见解各说各的,都“持之有故,言之成理”这便是诸子之学,大部分可以称为哲学。
学派:①第一个开门授徒的是孔子。
孔子主张有教无类,是第一个将学术民众化的人。
孔子之后有孟子、荀子。
儒士多半是上层社会的失业流民,儒家所拥护的制度,所讲所行的道德也是上层社会所讲所行的。
②下层失业流民,多半会成为武士。
墨家的创始者墨翟便出于武士,“墨”原是做苦工的犯人的意思,墨家本是贱者,也就不辞用这个诨名自称他们的学派。
墨家是有团体组织的,他们的首领叫作“巨子”,他们不但是打仗的专家,并且是制造战争器械的专家。
但墨家和别的武士不同,他们反对侵略,提倡“非攻”“兼爱”,主张“节用”“非乐”。
③道家反对一切文化和制度。
道家出于隐士,他们看见时世太乱,难以挽救,便消极起来,对于世事,取一种不闻不问的态度。
后来杨朱将这种态度理论化了,建立“为我”的学说。
他主张“全生保真,不以物累形”,老子、庄子的学说也从此出发。
老子主张顺应自然,无为而为,无治而治;庄子更进一步,主张绝对的自由、绝对的平等,老庄两派汉代总称为道家。
④法家出于“法术之士”,贵族政治崩坏,法术之士便创一种新的政治方法帮助当时的君主整理国政,这就是法治。
法术之士有重势、重术、重法三派,而韩非子集其大成。
古代贵族养着礼、乐专家,也养着巫祝术数专家。
礼、乐专家后来沦为儒士;巫祝术数专家便沦为方士。
汉代所称的阴阳家便出自方士,古代术数注意于所谓“天人之际”以为天道人事互相影响。
战国末年有些人更将这种思想推行起来,并加以理论化,使它成为一贯的学说,这就是阴阳家。
思想统一:秦相吕不韦编撰《吕氏春秋》想化零为整,集合众长,统一思想,但他的基调却是道家。
李春葆《数据结构教程》(第4版)章节题库-第九章至第十二章(圣才出品)
第9章查找一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n【答案】C【解析】最快查找一次成功,最慢查找n次成功。
平均查找次数为(1+2+3+…+n)/n,那么ASL=(n+1)/2。
2.在一个有N个元素的有序单链表中查找具有给定关键字的结点,平均情况下的时间复杂性为()。
A.O(1)B.O(N)C.O(N2)D.O(NlogN)【答案】B【解析】二分查找的时间复杂度为O(logn)。
在一个用N个元素的有序单链表中查找具有给定关键字的结点,因为查找是从头结点开始的,需要使用指针顺序往下查找,因此时间复杂度为0(N)。
3.对线性表进行折半查找时,要求线性表必须()。
A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序【答案】B【解析】二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
折半查找方法适用于对以顺序方式存储的有序表的查找,查找效率较高。
4.下列二叉排序树中查找效率最高的是()。
A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树【答案】A【解析】平衡二叉树的左子树和右子树的深度之差的绝对值不超过1。
这就保证了二叉树的深度是log2n级别的。
二叉查找树或者是一颗空数;或者是具有下列性质的二叉树:①若左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若右子树不空,则右子树上所有结点的值均大于它的根结点的值;③左、右子树也分别为二叉排序树。
B、C、D 三项均不能保证左子树和右子树的深度之差的绝对值不超过1,甚至很大,因此查找效率低。
5.当在一个有序的顺序存储表上查找一个数据时,既可用折半查找,也可用顺序查找,但前者比后者的查找速度()。
数据结构-第9章 查找
静态查找表 对查找表的查找仅是以查询为 目的,不改动查找表中的数据。 动态查找表 在查找的过程中同时插入不存 在的记录,或删除某个已存在的记录。
查找成功 查找表中存在满足查找条件的记 录。 查找不成功 查找表中不存在满足查找条件 的记录。
内查找 整个查找过程都在内存中进行。 外查找 在查找过程中需要访问外存。 平均查找长度ASL——查找方法时效的度量 为确定记录在查找表中的位置,需和给定值 进行比较的关键字个数的期望值。 n 查找成功时的ASL计算方法: ASL pici
3. 在二叉排序树上的操作
1)查找
[例] Key=28 f 24 12 T
45
53 28 90
Key=32 T 45 24 53 12 f 28 90 32
[算法描述]
2) 插入
[算法描述]
3) 生成
查找算法
返回
BiTree SearchBST(BiTree T,KeyType key){
//在根指针T所指二叉树中递归地查找某关键字等于 //key的数据元素,若查找成功,则返回指向该数据元 //素结点的指针,否则返回空指针
图9.1 用折半查找法查找12、50的过程 其中mid=(low+high)/2,当high<low时,表 示不存在这样的子表空间,查找失败。
成功! 位 置 1 2 3 4 5 6 7 8 9 10 11
值
6 12 15 18 22 25 28 35 45 58 60
low hign mid mid hign mid low mid (a) 用折半查找法查找12的过程
[性能分析] • 空间:一个辅助空间。 • 时间: 查找成功时的平均查找长度 设表中各记录查找概率相等 n ASLs(n)= PiCi =(1+2+ ... +n)/n =(n+1)/2 i 1 [算法特点] • 算法简单,对表结构无任何要求 • n很大时查找效率较低 • 改进措施:非等概率查找时,可将查找概率高 的记录尽量排在表后部。
《数据结构》填空作业题(答案解析)
《数据结构》填空作业题答案第1章绪论(已校对无误)1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。
2.程序包括两个内容:数据结构和算法。
3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。
4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。
5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。
6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。
7. 在树形结构中,数据元素之间存在一对多的关系。
8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。
9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。
10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。
11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。
12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。
13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。
14. 数据结构在物理上可分为顺序存储结构和链式存储结构。
15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。
16. 数据元素可由若干个数据项组成。
17. 算法分析的两个主要方面是时间复杂度和空间复杂度。
18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。
19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。
20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切的定义,并在有穷时间内计算出结果。
数据结构第九、十章 作业答案
第九章 查找一、填空题1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[1..20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ,其下标从小到大依次是1,3,6,8,11,13,16,19______,平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n n n ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)8、设一哈希表表长M 为100 ,用除留余数法构造哈希函数,即H (K )=K MOD P (P<=M ), 为使函数具有较好性能,P 应选( 97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈希查找法10、对线性表进行二分查找时,要求线性表必须以 顺序 方式存储,且结点按关键字有序排列。
数据结构第九章--查找-习题及答案
第九章查找一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A. (n-1)/2 B. n/2 C. (n+1)/2 D. n2. 下面关于二分查找的叙述正确的是 ( )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,则应作( ) 型调整以使其平衡。
数据结构c语言版第三版习题解答
数据结构c语言版第三版习题解答数据结构是计算机科学中非常重要的一门学科,它研究如何在计算机中存储和组织数据,以便有效地进行检索和操作。
数据结构的知识对于编写高效的程序和解决复杂的问题至关重要。
在学习和理解数据结构的过程中,解决习题是一种非常有效的方法。
本文将为读者提供《数据结构C语言版(第三版)》习题的解答。
1. 第一章:绪论第一章主要介绍了数据结构的基本概念和内容,包括算法和数据结构的概念、抽象数据类型(ADT)以及算法的评价等。
习题解答中,我们可以通过分析和讨论的方式对这些概念进行加深理解。
2. 第二章:算法分析第二章主要介绍了算法的基本概念和分析方法,包括时间复杂度和空间复杂度的计算方法。
习题解答中,我们可以通过具体的算法实例来计算其时间和空间复杂度,加深对算法分析的理解。
3. 第三章:线性表第三章主要介绍了线性表的概念和实现,包括顺序表和链表两种实现方式。
习题解答中,我们可以通过编写代码实现线性表的基本操作,并分析其时间和空间复杂度。
4. 第四章:栈和队列第四章主要介绍了栈和队列的概念和实现,包括顺序栈、链栈、顺序队列和链队列四种实现方式。
习题解答中,我们可以通过编写代码实现栈和队列的基本操作,并分析其时间和空间复杂度。
5. 第五章:串第五章主要介绍了串的概念和实现,包括顺序串和链串两种实现方式。
习题解答中,我们可以通过编写代码实现串的基本操作,并分析其时间和空间复杂度。
6. 第六章:树第六章主要介绍了树的概念和实现,包括二叉树、哈夫曼树和赫夫曼编码等内容。
习题解答中,我们可以通过编写代码实现树的基本操作,并分析其时间和空间复杂度。
7. 第七章:图第七章主要介绍了图的基本概念和实现,包括图的表示方法和图的遍历算法等。
习题解答中,我们可以通过编写代码实现图的基本操作,并分析其时间和空间复杂度。
8. 第八章:查找第八章主要介绍了查找算法的基本概念和实现,包括顺序查找、二分查找、哈希查找等内容。
- 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请画出每次删除
结点后树的情况:
五、算法题(一)算法理解题
(二)算法填空题
(三)算法设计题。