数据结构复习题-第10章答案2014-6-16

合集下载

数据结构复习题及答案5篇

数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。

()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。

()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

()5.如果两个串含有相同的字符,则这两个串相等。

()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。

()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。

()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。

()9.一个广义表的表尾总是一个广义表。

()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。

()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。

()13.直接选择排序是一种稳定的排序方法。

()14.闭散列法通常比开散列法时间效率更高。

()15.有n个结点的不同的二叉树有n!棵。

()16.直接选择排序是一种不稳定的排序方法。

()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。

()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。

()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。

数据结构复习题-第7章答案2014-6-16

数据结构复习题-第7章答案2014-6-16

、选择题(每小题 1 分,共 10分)1. 一个 n 个顶点的连通无向图,其边的个数至少为( C )。

A.n+l B.n C.n-l D.2n2. 下列哪一种图的邻接矩阵是对称矩阵( B )。

A. 有向图 B. 无向图 C.AOV 网 D.AOE 网5. 无 向 图 G=(V,E ), 其 中 : V={a,b,c,d,e,f}, E={(a,b ),(a,e ),(a,c ),(b,e ),(c,f ), (f,d ),(e,d )} ,由顶点 a 开始对该图进行深度优先遍历, 得到的顶点序列正确的是 ( D )。

A. a,b,e,c,d,f B. a,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b6. 用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。

A. 栈 B. 队列 C. 树 D. 图7. 以下数据结构中,哪一个是线性结构( D )。

A. 广义表 B. 二叉树 C. 图 D. 栈8. 下面哪一方法可以判断出一个有向图是否有环(回路) ( B )。

A. 最小生成树B. 拓扑排序C. 求最短路径D. 求关键路径 9. 在一个图中,所有顶点的度数之和等于图的边数的( C )倍。

10. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(B )倍。

A. 1/2B. 1C. 2D. 411. 有 8 个顶点无向图最多有( B )条边。

A. 14 B. 28 C. 56 D. 11212. 有 8 个顶点无向连通图最少有( C )条边。

A. 5 B. 6 C. 7 D. 813. 有 8个顶点有向完全图有( C )条边。

A. 14 B. 28 C. 56 D. 11214. 下列说法不正确的是( A )。

A. 图的遍历是从给定的源点出发每一个顶点仅被访问一次 C. 图的深度遍历不适用于有向图B. 遍历的基本算法有两种:深度遍历和广度遍历 D •图的深度遍历是一个递归过程 二、判断题(每小题 1 分,共 10分)1. n 个顶点的无向图至多有 n (n-1) 条边。

数据结构答案 第10章 排序学习与指导

数据结构答案 第10章 排序学习与指导

第10章排序10.1 知识点分析1.排序基本概念:(1)排序将数据元素的任意序列,重新排列成一个按关键字有序(递增或递减)的序列的过程称为排序。

(2)排序方法的稳定和不稳定若对任意的数据元素序列,使用某个排序方法,对它按关键字进行排序,若对原先具有相同键值元素间的位置关系,排序前与排序后保持一致,称此排序方法是稳定的;反之,则称为不稳定的。

(3)内排序整个排序过程都在内存进行的排序称为内排序,本书仅讨论内排序。

(4)外排序待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。

2.直接插入排序直接插入排序法是将一个记录插到已排序好的有序表中,从而得到一个新的,记录数增1的有序表。

3.二分插入排序二分插入排序法是用二分查找法在有序表中找到正确的插入位置,然后移动记录,空出插入位置,再进行插入的排序方法。

4.希尔排序希尔排序的基本思想是:先选取一个小于n的整数d1作为第一个增量,把待排序的数据分成d1个组,所有距离为d1的倍数的记录放在同一个组内,在各组内进行直接插入排序,每一趟排序会使数据更接近于有序。

然后,取第二个增量d2,d2< d1,重复进行上述分组和排序,直至所取的增量d i=1(其中d i< d i-1 < ……< d2< d1),即所有记录在同一组进行直接插入排序后为止。

5.冒泡排序冒泡法是指每相邻两个记录关键字比大小,大的记录往下沉(也可以小的往上浮)。

每一遍把最后一个下沉的位置记下,下一遍只需检查比较到此为止;到所有记录都不发生下沉时,整个过程结束。

6.快速排序快速排序法是通过一趟排序,将待排序的记录组分割成独立的两部分,其中前一部分记录的关键字均比枢轴记录的关键字小;后一部分记录的关键字均比枢轴记录的关键字大,枢轴记录得到了它在整个序列中的最终位置并被存放好。

第二趟再分别对分割成两部分子序列,再进行快速排序,这两部分子序列中的枢轴记录也得到了最终在序列中的位置而被存放好,并且它们又分别分割出独立的两个子序列……。

最新版《数据结构》各章习题及答案

最新版《数据结构》各章习题及答案

最新版《数据结构》各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。

① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括________、________、_________ 和__________ 四种类型,其中树形结构和图形结构合称为_____ 。

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______ 个前驱结点;最后一个结点______后续结点,其余每个结点有且只有 _______ 个后续结点。

3.在树形结构中,树根结点没有_______ 结点,其余每个结点有且只有_______个前驱结点;叶子结点没有 ________ 结点,其余每个结点的后续结点可以_________。

数据结构第10章 习题答案

数据结构第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)法是基于选择排序的一种排序方法,是完全二叉树结构的一个重要应用。

武汉理工大学数据结构2014复习题

武汉理工大学数据结构2014复习题

复习题集一判断题()1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。

()2. 抽象数据类型与计算机内部表示和实现无关。

()3. 线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。

()4. 链表的每个结点中都恰好包含一个指针。

()5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

()6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

()7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

()8. 线性表在物理存储空间中也一定是连续的。

()9. 顺序存储方式只能用于存储线性结构。

()10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

()11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

()12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

()13.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

()14.二叉树的度为2。

()15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

()16.二叉树中每个结点的两棵子树的高度差等于1。

()17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

()18.具有12个结点的完全二叉树有5个度为2的结点。

()19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。

()20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。

()21.计算机处理的对象可以分为数据和非数据两大类。

()22.数据的逻辑结构与各数据元素在计算机中如何存储有关。

()23.算法必须用程序语言来书写。

()24.判断某个算法是否容易阅读是算法分析的任务之一。

(完整word版)数据结构复习题-第7章答案2014-6-16(word文档良心出品)

(完整word版)数据结构复习题-第7章答案2014-6-16(word文档良心出品)

第7章图一、选择题(每小题1分,共10分)1.一个n个顶点的连通无向图,其边的个数至少为( C )。

A.n+lB.nC.n-lD.2n2.下列哪一种图的邻接矩阵是对称矩阵( B )。

A.有向图B.无向图C.AOV网D.AOE网3.为解决计算机和打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是( B )。

A.栈B.队列C.树D.图4.设无向图的顶点个数为n,则该图最多有( C )条边。

A. n-1B. n(n-1)/2C. n(n+1)/2D. 2n5.无向图G=(V,E),其中:V={a,b,c,d,e,f}, E={(a,b),(a,e),(a,c),(b,e),(c,f), (f,d),(e,d)},由顶点a开始对该图进行深度优先遍历,得到的顶点序列正确的是( D )。

A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b6.用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。

A.栈B.队列C.树D.图7.以下数据结构中,哪一个是线性结构( D )。

A.广义表B.二叉树C.图D.栈8.下面哪一方法可以判断出一个有向图是否有环(回路)( B )。

A.最小生成树B.拓扑排序C.求最短路径D.求关键路径9.在一个图中,所有顶点的度数之和等于图的边数的( C )倍。

A. 1/2B. 1C. 2D. 410.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。

A. 1/2B. 1C. 2D. 411.有8个顶点无向图最多有( B )条边。

A. 14B. 28C. 56D. 11212.有8个顶点无向连通图最少有( C )条边。

A. 5B. 6C. 7D. 813.有8个顶点有向完全图有( C )条边。

A. 14B. 28C. 56D. 11214.下列说法不正确的是( A )。

第10章怎样管理和利用数据练习题答案解析

第10章怎样管理和利用数据练习题答案解析

第10章怎样管理和利用数据1、数据库系统是信息社会中重要的系统,其基本构成如下图示意。

仔细理解数据库、数据库系统和数据库管理系统等概念,回答下列问题。

图10-1(1)关于为什么要用“数据库”,下列说法正确的是_____。

(A)因为数据库可以使不同地点的人员实时地共享数据,一个地点的人员对数据库中数据进行了修改,另一个地点的人员可以马上了解这种修改,这种实时共享数据是纸面数据、非数据库数据所达不到的;(B)因为数据库是聚集数据的一种有效手段,数据库管理系统可以帮助我们对数据进行若干的管理和控制,而只有聚集了大量数据,才能发挥聚集数据的效益;(C)因为数据库可以有效实现“数据产生的分散化”和“数据应用的共享化”;(D)因为数据库可以便利用户对数据的操控,用户可以用简单的一条语句便可实现诸如“统计每个学生平均成绩”这样具有大量计算的工作;(E)上述原因都是要用“数据库”的理由,但还有其他理由。

答案:E解释:本题目考查数据库系统与数据库管理系统的相关概念。

选择(E),(A)(B)(C)(D)均正确,但单独每一项均不够全面,简单举例,数据库可以将数据电子化克服了大量纸面保存的数据占用空间不方便查询等缺点。

具体内容请参考课堂视频“数据为什么要管理”和第十章课件。

(2)关于数据库,下列说法不正确的是_____。

(A)数据库是一个特定组织所拥有的相互有关联关系的数据的集合;(B)数据库是以统一的数据结构组织数据并存放于存储介质上的数据集合;(C)数据库可以为各类人员通过应用程序所共享使用;(D)数据库是管理大规模数据集合的一种软件;答案:D解释:本题目考查数据库系统与数据库管理系统的相关概念。

选择(D),数据库并不等同于数据库管理系统。

具体内容请参考课堂视频“什么是数据库与数据库系统”和第十章课件。

(3)有以下一些要素:(I)数据库;(II)数据库管理系统;(III)数据库应用;(IV)数据库管理员;(V)计算机基本系统及网络,则一个数据库系统是由_____组成的一个系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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.堆是一种有用的数据结构。

下列关键码序列( D )是一个堆。

A.94,31,53,23,16,72 B.94,53,31,72,16,23 C.16,53,23,94,31,72 D.16,31,23,94,53,7210.堆排序是一种( B )排序。

A .插入B .选择C .交换D .归并11.( D )在链表中进行操作比在顺序表中进行操作效率高。

A .顺序查找B .折半查找C .分块查找D .插入12.直接选择排序的时间复杂度为( D )。

(n 为元素个数)A.O(n) B.O(log2 n) C.O(nlog2 n) D.O(n2 )二、判断题(每小题1分,共10分)1.对于n个记录的集合进行快速排序,所需要的平均时间是O(nlogn)。

(对)2.(101,88,46,70,34,39,45,58,66,10)是堆。

( 对)3.如果某种排序算法是不稳定的.则该方法没有实际应用价值。

( ×)4.外部排序是把外存文件调入内存,可利用内部排序的方法进行排序,因此排序所花的时间取决于内部排序的时间。

(×)5.具有n个结点的二叉排序树有多种,其中树高最小的二叉排序树是最佳的。

(√)6. 在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍然保持不变,称这种排序为稳定排序。

( √)7.在平衡二叉树中,任意结点左右子树的高度差(绝对值)不超过1。

( √)8.冒泡排序算法关键字比较的次数与记录的初始排列次序无关。

(×)三、填空题(每空1分,共10分)1.不仅需要使用内存,而且还要使用外存的排序称为。

答:外部排序2.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的和记录的。

答:比较、移动3.直接插入排序用监视哨的作用是_______。

答:免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。

4.排序方法有________、_______、________、________、________。

答:插入排序交换排序选择排序归并排序基数排序5.稳定的排序方法有________、_______、________、________。

答:直接插入排序、冒泡排序、归并排序、基数排序、折半插入排序6.不稳定的排序方法有________、_______、________、________。

答:希尔排序、快速排序、简单选择排序(直接选择排序)、堆排序、树形选择排序7.稳定的排序方法有________、_______ ;不稳定的排序方法有________、_______ 。

四、简答题(共10分)1.简述快速排序算法的基本思想。

答:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

答案二:在待排序的n个记录中任取一个记录(通常取第一个记录),以该记录作为标准,将所有记录分成两组,使第一组中各记录的关键字都小于等于该标准关键字,而第二组中各记录的值都大于等于该标准关键字,并把该记录排放在这两组的中间位置,这样遍历一趟文件后,将文件以该记录为界分为两部分,然后再对上面两组分别重复上述过程,直到每一部分仅剩一个记录为止。

2.对于下列各种排序方法,哪些是稳定的?哪些是不稳定的?(1)直接插入排序;(2)希尔排序;(3)快速排序;(4)堆排序;(5)归并排序;(6)基数排序。

答:(1)(5)(6)是稳定的排序方法;(2)(3)(4)是不稳定的排序方法。

3.希尔排序、简单选择排序、快速排序和堆排序是不稳定的排序方法,试举例说明。

答:(1) 希尔排序{ 512 275 275* 061} 增量为2{ 275* 061 512 275 } 增量为1{ 061 275* 275 512 }(2) 直接选择排序{ 275 275* 512 061 } i = 1{ 061 275* 512 275 } i = 2{ 061 275* 512 275 } i = 3{ 061 275* 275 512 }(3) 快速排序{ 512 275 275* }{ 275* 275 512 }(4) 堆排序{ 275 275* 061 170 } 已经是最大堆,交换275与170{ 170 275* 061 275 } 对前3个调整{ 275* 170 061 275 } 前3个最大堆,交换275*与061{ 061 170 275* 275 } 对前2个调整{ 170 061 275* 275 } 前2个最大堆,交换170与061{ 061 170 275* 275 }4.什么是内排序什么是外排序?什么排序方法是稳定的?什么排序方法是不稳定的?答:内排序是排序过程中参与排序的数据全部在内存中所做的排序,排序过程中无需进行内外存数据传送,决定排序方法时间性能的主要是数据排序码的比较次数和数据对象的移动次数。

外排序是在排序的过程中参与排序的数据太多,在内存中容纳不下,因此在排序过程中需要不断进行内外存的信息传送的排序。

决定外排序时间性能的主要是读写磁盘次数和在内存中总的记录对象的归并次数。

不稳定的排序方法主要有希尔排序、直接选择排序、堆排序、快速排序。

不稳定的排序方法往往是按一定的间隔移动或交换记录对象的位置,从而可能导致具有相等排序码的不同对象的前后相对位置在排序前后颠倒过来。

其他排序方法中如果有数据交换,只是在相邻的数据对象间比较排序码,如果发生逆序(与最终排序的顺序相反的次序)才交换,因此具有相等排序码的不同对象的前后相对位置在排序前后不会颠倒,是稳定的排序方法。

但如果把算法中判断逆序的比较“>(或<)”改写成“≥(或≤)”,也可能造成不稳定。

参考题:4.在什么条件下,MSD基数排序比LSD基数排序效率更高?答:由于高位优先的MSD方法是递归的方法,就一般情况来说,不像低位优先的LSD方法那样直观自然,而且实现的效率较低。

但如果待排序的排序码的大小只取决于高位的少数几位而与大多数低位无关时,采用MSD方法比LSD方法的效率要高。

5.堆排序是否是一种稳定的排序方法?为什么?答:堆排序不是一种稳定的排序方法。

因为在堆调整的过程中,关键字进行比较和交换的所走路线是沿着根结点到叶子结点,因此对于相同的关键字就可能存在后面的先被变换到前面。

例如对于初始大J顶堆(2,1,),第一遍堆调整为(,1)(2),因而堆排序不是稳定的。

6.在多关键字排序时,LSD和MSD两种方法的特点是什么?答:最高位优先(MSD)法:先对最高位关键字K0进行排序,将序列分成若干子序列,每个子序列中的记录都具有相同的K0值,然后,分别就每个子序列对关键字K1进行排序,按K1值不同再分成若干更小的子序列,……,依次重复,直至最后对最低位关键字排序完成,将所有子序列依次连接在一起,成为一个有序子序列。

最低位优先(LSD)法:先对最低位关键字Kd-1进行排序,然后对高一级关键字Kd-2进行排序,依次重复,直至对最高位关键字K0排序后便成为一个有序序列。

进行排序时,不必分成子序列,对每个关键字都是整个序列参加排序,但对Ki (0<=i<d-1)排序时,只能用稳定的排序方法。

另一方面,按LSD进行排序时,可以不通过关键字比较实现排序,而是通过若干次“分配”和“收集”来实现排序。

五、应用题(共40分)1.已知序列{503,87,512,61,908,170,897,275,652,462},采用基数排序法对该序列作升序排序时的每一趟的结果。

答案依题意,采用基数排序法排序的各趟的结果如下:初始:503,87,512,61,908,170,897,275,652,462第1趟(按个位排序):170,61,512,652,462,503,275,87,897,908第2趟(按十为排序):503,908,512,652,61,462,170,275,87,897第3趟(按百为排序):61,87,170,275,462,503,512,652,897,9082.写出快速排序的思想,并写出序列(49,38,65,97,76,13,27,50)第一趟快速排序的过程。

3.对一组记录(54,38,96,23,15,72,60,45,83)执行希尔排序(D=5,3,1),记录每一趟排序结果。

4.给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18) 执行希尔排序(D=6,3,1),记录每一趟排序结果。

5.对一组记录(54,38,96,23,15,72,60,45,83)执行冒泡排序,记录每一趟排序结果。

6.已知一组元素的排序码为(36,25,48,12,65,20),写出用直接插入排序法每次向前面有序表插入一个元素后的排列结果。

相关文档
最新文档