数据结构第十章习题课
数据结构教材课后习题及参考答案习题 (10)[3页]
![数据结构教材课后习题及参考答案习题 (10)[3页]](https://img.taocdn.com/s3/m/3b7b79ebeff9aef8951e063c.png)
习题6一.填空题1.树中除根结点外,其他结点有且只有个直接前驱结点,但可以有个直接后继结点。
2.树中结点的度,是指结点拥有的个数;一棵具有n个结点的树,该树中所有结点的度数之和为。
3.深度为h的完全二叉树至少有个结点,至多有个结点,若按层序从1开始编号,则编号最小的叶子结点的编号是。
5.将一棵完全二叉树按层序从1进行编号,对编号为i的结点,如果有左孩子,则左孩子的编号应该是;如果有右孩子,则右孩子的编号应该是。
6.一棵完全二叉树有1001个结点,其深度是,叶子结点个数是。
78.树的先根遍历序列与其对应二叉树的遍历序列相同,树的后根遍历序列与其对应二叉树的遍历序列相同。
9.若二叉树共有n个结点,采用线索链表存储其线索二叉树,那么在所有存储结点里,一共有个指针域,其中有个指针是指向其孩子结点的,个指针是指向其前驱后继结点的。
指向前驱后继结点的指针称为。
10.哈夫曼树又称。
它是n个带权叶子结点构成的所有二叉树中,带权路径长度的二叉树。
11.哈夫曼树中,权值较大的叶结点一定离根结点。
由n个带权值的叶结点生成的哈夫曼树中共有个结点,其中有个分支结点。
12.哈夫曼树中不存在度为的结点。
二.选择题1.有关二叉树下列说法正确的是()A.二叉树的度为2 B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 2.二叉树的第i层上最多含有结点数为()A.2i B.2i-1-1 C.2i-1D.2i-13.一棵具有1025个结点的二叉树的高度为( )。
A.11 B.10 C.11至1025之间D.10至1024之间4.一棵高度为5的二叉树,其结点总数为()。
A.6~17 B.5~16 C.6~32 D.5~315.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( )。
A.9 B.11 C.15 D.不能确定6.一棵完全二叉树具有600个结点,则它有( ) 个度为1的结点。
数据结构第10章 习题答案

1.下列排序算法中,其中( D )是稳定的。
A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序2.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为 ( A )(按递增序)。
A.下面的B,C,D都不对。
B.9,7,8,4,-1,7,15,20C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,203.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:( B )。
A. 直接插入排序B. 快速排序C. 直接选择排序D. 堆排序4.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( D )方法最快。
A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序5.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。
A. 插入B. 选择C. 希尔D. 二路归并6. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( A )。
A. 选择B. 冒泡C. 插入D. 堆7. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行( C )次比较。
A. 3B. 10C. 15D. 258. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是 ( B )A. lB. 4C. 3D. 29. 堆排序是( E )类排序A. 插入B. 交换C. 归并D. 基数E. 选择10.排序方法有许多种,(1)法从未排序的序列中依次取出元素,与已排序序列(初始时为空)中的元素作比较,将其放入已排序序列的正确位置上;(2)法从未排序的序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端;交换排序方法是对序列中的元素进行一系列比较,当被比较的两元素逆序时,进行交换;(3)和(4)是基于这类方法的两种排序方法,而(4)是比(3)效率更高的方法;(5)法是基于选择排序的一种排序方法,是完全二叉树结构的一个重要应用。
数据结构第九、十章作业答案

第九章查找一、填空题1.在数据的存放无规律而言的线性表中进行检索的最佳方法是顺序查找(线性查找) 。
2.线性有序表(a i,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索_8 次。
设有100个结点,用二分法查找时,最大比较次数是_7_ ____________ 。
3•假设在有序线性表a[1..2O]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为_2 ___________ ;比较四次查找成功的结点数为8 ,其下标从小到大依次是1,3,6,8,11,13,16,19 _ ,平均查找长度为 3.7 。
解:显然,平均查找长度二0( log 2n) <5次(25)。
但具体是多少次,则不应当按照公式ASL =U|°g2(n⑴来计算(即(21 X log 221) /20 = 4.6次并不正确!)。
因为这是在假设n = 2m-1 n 的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1 + 2X 2+ 4X 3+ 8X 4+ 5X 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个关键码的散列地址都相同,贝U探测的总次数是n(n-1)/2= ( 1 土2+…+ n-1 )。
(而任一元素查找次数 < n-1)&设一哈希表表长M为100,用除留余数法构造哈希函数,即H( K) =K MOIP ( P<=M ,为使函数具有较好性能,P应选(97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈_______10、对线性表进行二分查找时,要求线性表必须以顺序方式存储,且结点按关键字有序排列。
第10章 电荷和静电场习题课

(3) 积分值与零势点选取有关 . 选取原则:
电荷有限分布选 U 0 电荷无限分布选 U有限处 0
8
零势点 零势点
Ua E dl Ecosdl
a
a
注意:
• 选取零势点的原则:使场中电势分布有确定值
一般,场源电荷有限分布:选 场源电荷无限分布:不选 许多实际问题中选:
4r2dr
Q2 80r R
18
(1101B)
两个点电荷 q1 40 10-9 C 和 q2 -70 10-9 C ,相距10 cm。
设点A是它们连线的中点,点B 的位置离q1为8.0 cm,离q2为
6.0 cm,求 (1)点A 的电势;(2)点B 的电势。 (设无穷远处电势为0,已知真空中的介电常数)
rr
Ò S
D
dS
r
rS内
q0
D 4πr2 Q
r E
D
D
r0
Q
4π r 0r 2
rˆ
Q
D
r
4πr 2
D 方向:沿径向向外
we
1
2
E2
1 2
r
0
Q
4π r 0r 2
Q2
32π2 r 0r 4
22
如图所示,一半径为R,总电量为q的均匀 带电圆环。
√A. Q
4πε0a
B. Q 2πε0a
C.
Q 4πε0a
2
D. Q 2πε0a2
12
已知厚度为d 的无限大带电导体板,两表面上 σ
数据结构(第二版)习题库章节练习题1-9章全

数据结构(第二版)习题库章节练习题1-9章全数据结构(第二版)习题库章节练习题1-9章全第一章:引论引论部分为数据结构的开篇,主要介绍了数据结构的基本概念和分类。
在这一章中,我们学习了数据结构的定义、作用以及与算法的关系。
接下来,将为你详细介绍第一章的习题内容。
1. 习题1-1题目:请简述数据结构的定义和作用。
要求:通过一段简洁清晰的语言来回答问题,并给出你的理解。
答案:数据结构是计算机中存储、组织和管理数据的方式。
它旨在将数据以特定的方式进行排列,以便高效地进行存储和检索。
数据结构作为计算机科学的基础,为我们解决实际问题提供了有效的工具和方法。
2. 习题1-2题目:你认为数据结构与算法之间的关系是什么?要求:结合实际案例,详细解释数据结构与算法之间的相互依赖关系。
答案:数据结构和算法是密不可分的,它们之间存在着相互依赖的关系。
数据结构提供了算法操作的基础,而算法则对数据结构进行操作和处理。
例如,在搜索算法中,我们需要合适的数据结构来存储和组织数据,以便能够高效地进行搜索操作。
而无论是数组、链表还是树,都需要通过算法来进行增删改查等操作。
第二章:算法分析算法分析是数据结构中的重要概念,它涉及到算法的运行时间和空间效率。
在这一章中,我们将学习算法分析的基本方法和常用技巧,并通过习题来巩固所学知识。
3. 习题2-1题目:请解释渐进记号中的"O"表示什么意思。
要求:简明扼要地回答问题,并辅以例子说明。
答案:在算法分析中,"O"表示渐进上界。
它描述了算法在最坏情况下的运行时间复杂度。
例如,如果一个算法的时间复杂度为O(n),那么说明该算法的运行时间与输入规模n成正比。
即使输入规模变大,算法的运行时间也不会超过n的某个常数倍。
4. 习题2-2题目:请说明算法的平均情况分析与最坏情况分析有何区别?要求:用简洁的语言说明两种分析方法的不同之处,并给出具体的示例。
答案:算法的平均情况分析和最坏情况分析的区别在于对输入数据的预先假设。
数据结构第九、十章 作业答案

第九章 查找一、填空题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 nn 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 * 1’ = 10’)一、概念题2.2.当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。
2.3.当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。
2.6.带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。
3.6.循环队列的引入,目的是为了克服假溢出。
4.2.长度为0的字符串称为空串。
4.5.组成串的数据元素只能是字符。
4.8.设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。
7.2.为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。
5.7.广义表的深度是广义表中括号的重数7.8.有向图G可拓扑排序的判别条件是有无回路。
7.9.若要求一个稠密图的最小生成树,最好用Prim算法求解。
8.8.直接定址法法构造的哈希函数肯定不会发生冲突。
9.2.排序算法所花费的时间,通常用在数据的比较和交换两大操作。
1.1.通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。
1.2.对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。
1.3.存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。
1.4.抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。
1.5.一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。
2.8.在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。
2.9.在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一。
数据结构第九、十章 作业答案

第九章 查找一、填空题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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 .下列排序算法中,其中( )是稳定的。
A.堆排序,冒泡排序B.快速排序,堆排序C.直接选择排序,归并排序D.归并排序,冒泡排序2.若需在O (nlog 2n )的时间内完成对数组的排序,且要求排序是稳定的,贝U 可选 择的排序方法是( )。
A.快速排序B.堆排序C.归并排序D.直接插入排序 3.排序趟数与序列的原始状态有关的排序方法是()排序法。
A .插入B.选择C.冒泡D.快速 15,21)排序,数据的排列次序在排序的过程中(2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 84则采用的排序是 ()A.选择B.冒泡5. 对序列{15,9,7,8,20,-1, 4}进行排序,进行一趟后数据的排列变为{4, 9, -1,8,20,7,15};则采用的是( A.选择 B.快速6.若上题的数据经一趟排序后的排列为 {9,15,7,8,是( )排序。
A .选择 B.堆 C.直接插入D.冒泡7.在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )A .直接插入排序B .冒泡排序C .简单选择排序8. 下列排序算法中,( )算法可能会出现下面情况:在最后一趟开始之前,所有元素都不在其最终的位置上。
A.堆排序B.冒泡排序C.快速排序D.插入排序9.下列排序算法中,占用辅助空间最多的是: A.归并排序 B.快速排序10. 用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数 最少的是( )OA . 94,32,40,90,80,46,21,69B . 32,40,21,46,69,94,90,80C . 21,32,46,40,80,69,90,94D . 90,69,80,46,21,32,94,40 11.若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行 ()4.对一组数据(84,47,25, 的变化为(1) 84 47 25 15 21 C.快速D.插入)排序。
C.希尔D.冒泡 20, -1 , 4},则采用的C.希尔排序D.堆排序次比较。
A. 3B. 10C. 15D. 2512. 对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )A •每次分区后,先处理较短的部分B •每次分区后,先处理较长的部分C •与算法每次分区后的处理顺序无关D •以上三者都不对13•在含有n个关键字的小根堆(堆顶元素最小)中,关键字最大的记录有可能存储在()位置上。
A. n/2B. n/2 -1C. 1 |D. n/2 +214. 对n个记录的文件进行堆排序,最坏情况下的执行时间是多少?( )A. O (Iog2n)B. O (n)C. O (nIog2n)D. O (n*n )15. 就排序算法所用的辅助空间而言,堆排序,快速排序,归并排序的关系是( )A .堆排序〈快速排序〈归并排序B. 堆排序〈归并排序〈快速排序C .堆排序〉归并排序〉快速排序D.堆排序> 快速排序> 归并排序16 .如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( )方法最快。
A.起泡排序 B .快速排列C . Shell排序|D .堆排序E .简单选择排序17 .数据序列(8, 9, 10, 4, 5, 6, 20, 1, 2)只能是下列排序算法中的() 的两趟排序后的结果。
A .选择排序 B.冒泡排序|C.插入排序 D.堆排序18 .分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是_____ 法,最费时间的是_________ 法。
答:冒泡,快速19.设用希尔排序对数组{98, 36, -9, 0, 47, 23, 1, 8, 10, 7}进行排序,给出的步长(也称增量序列)依次是4, 2, 1则排序需 __________________ ,写出第一趟结束后,数组中数据的排列次序____________ 。
答: 3, (10,7,-9,0,47,23,1,8,98,36)20 .堆是一种有用的数据结构。
试判断下面的关键码序列中哪一个是堆① 16, 72, 31, 23, 94, 53 ②94, 53, 31, 72, 16, 23 ③ 16, 53, 23, 94, 31, 72 ④ 16, 31, 23, 94, 53, 72 ⑤94, 31, 53, 23, 16, 72 堆排序是一种_(1)_类型的排序,它的一个基本问题是如何建堆,常用的建堆算法是1964年Floyd提出的_(2)_,对含有n个元素的序列进行排序时,堆排序的时间复杂度是(3),所需要的附加结点是⑷。
答:④是堆(1)选择(2)筛选法(3)O( nl og2 n) (4)O(1)21 •关键码序列(Q, H , C, 丫, Q , A , M , S, R, D , F, X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell排序法,则一趟扫描的结果是 ___ ;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是 _____ 。
答:(Q,A,C,S,Q,D,F,X,R,H,M,Y),(F,H,C,D,Q,A,M,Q,R,S,Y,X)22.算法模拟设待排序的记录共7个,排序码分别为8,3,2,5,9,1,6。
(1) 用直接插入排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
(2) 用直接选择排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
(3) 直接插入排序算法和直接选择排序算法的稳定性如何?解答: ( 1 )直接插入排序第一趟(3)[8,3],2,5,9,1,6 第二趟(2)[8,3,2],5,9,1,6第三趟(5)[8,5,3,2],9,1,6 第四趟(9)[9,8,5,3,2],1,6第五趟(1)[9,8,5,3,2,1],6 第六趟(6)[9,8,6,5,3,2,1](2)直接选择排序(第六趟后仅剩一个元素,是最小的,直接选择排序结束)第一趟(9)[9],3,2,5,8,1,6 第二趟(8)[9,8],2,5,3,1,6第三趟(6)[9,8,6],5,3,1,2 第四趟(5)[9,8,6,5],3,1,2第五趟(3)[9,8,6,5,3],1,2 第六趟(2)[9,8,6,5,3,2],1(3)直接插入排序是稳定排序,直接选择排序是不稳定排序。
23. 已知某文件的记录关键字集为{50,10,50,40,45,85,80},选择一种从平均性能而言是最佳的排序方法进行排序,且说明其稳定性。
解答:平均性能最佳的排序方法是快速排序,该排序方法不稳定。
初始序列: 50,10,50,40,45,85,80一趟排序: [45,10,50,40] 50 [85,80] 二趟排序: [40,10] 45 [50] 50[80] 85 三趟排序: 10,40,45,50,50,80,8524.对给定文件( 28,07,39,10,65,14,61,17,50,21)选择第一个元素28 进行划分,写出其快速排序第一遍的排序过程。
解答:初始序列:[28],07,39,10,65,14,61,17,50,2121 移动:21,07,39,10,65,14,61,17,50,[]39移动:21,07,[],10,65,14,61,17,50,3917移动:21,07,17,10,65,14,61,[],50,3965移动:21,07,17,10,[],14,61,65,50,3914移动:21,07,17,10,14,[28],61,65,50,3925.已知一关键码序列为:3,87,12,61,70,97,26,45。
试根据堆排序原理,填写下示各步骤完整结果。
建立堆结构:_____________交换与调整:(1) 87 70 26 61 45 12 3 97; (2) _____________________ ;(3) 61 45 26 3 12 70 87 97; (4) _____________________ ;(5) 26 12 3 45 61 70 87 97; (6) _____________________ ;(7) 3 12 26 45 6170 87 97;解答:建立堆结构:97,87,26,61,70,12,3,45 (2)70,61,26,3,45,12,87,97(4) 45,12,26,3,61,70,87,97(6)12,3,26,45,61,70,87,9726.已知待排序的序列为 (503, 87, 512, 61, 908, 170, 897, 275, 653, 462), 试完成下列各题。
(1) 根据以上序列建立一个堆(画出第一步和最后堆的结果图) ,希望先输出最小值。
(2) 输出最小值后,如何得到次小值。
(并画出相应结果图)(2)求次小值27•给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18)写出用下列算法从小到大排序时第一趟结束时的序列;(1) 希尔排序(第一趟排序的增量为5)(2) 快速排序(选第一个记录为枢轴(分隔))(3) 链式基数排序(基数为10)解答:(1)一趟希尔排序:12,2,10,20,6,18,4,16,30,8,28 ( D=5)(2) —趟快速排序:6,2,10,4,8,12,28,30,20,16,18(3) 链式基数排序LSD [0][1][2][3][4][5][6][7][8][9]分配30 12 4 16 810 2 6 2820 18收集:—30—10—20—12—2—4—16—6—8—28—18 28.请写出应填入下列叙述中( )内的正确答案。
排序有各种方法,如插入排序、快速排序、堆排序等。
设一数组中原有数据如下:15,13,20,18,12,60。
下面是一组由不同排序方法进行一遍排序后的结果。
( )排序的结果为:12,13,15,18,20,60( )排序的结果为:13,15,18,12,20,60( )排序的结果为:13,15,20,18,12,60( )排序的结果为:12,13,20,18,15,60解答:①快速排序②冒泡排序③直接插入排序④堆排序29.写出一趟快速排序算法。
int Partition(RecType R[] ,int l ,int h) //一趟快速排序算法,枢轴记录到位,并返回其所在位置,{ int i=l; j=h; R[0] = R[i]; x = R[i].key;while(i<j){ while(i<j && R[j].key>=x) j--;if (i<j) R[i] = R[j]; while(i<j && R[i].key<=x) i++;if (i<j) R[j] = R[i]; }//while R[i]=R[0]; return i;}//Partition30.设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。