1、习 题 讨 论,第八章 排序,1下列排序算法中,其中( )是稳定的。 堆排序,冒泡排序 B. 快速排序,堆排序 C. 直接选择排序,归并排序 D. 归并排序,冒泡排序2如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。( )就是不稳定的排序方法。 A起泡排序 B归并排序 CShell排序 D直接插入排序 E简单选择排序,一、选择题,D,C,E,一、选择题,3若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( )。 A. 快速排序 B. 堆排序 C. 归并排序 D. 直接插入排序 4排序趟数与序列的原始
2、状态有关的排序方法是( )排序法。 A插入 B. 选择 C. 冒泡 D. 快速,C,C,D,一、选择题,5下列内部排序算法中: A快速排序 B. 直接插入排序 C. 二路归并排序 D. 简单选择排序 E. 起泡排序 F. 堆排序1) 其比较次数与序列初态无关的算法是( ) 2)不稳定的排序算法是( ) 3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,kn)的情况下,排序效率最高的算法是( ) 4)排序的平均时间复杂度为O(nlogn)的算法是( )为O(n*n)的算法是( ),B,D,C,A,D,F,A,C,F,B,D,E,一、选择题,6对一组数据(84,47,25,15,21
3、)排序,数据的排列次序在排序的过程中的变化为 (1) 84 47 25 15 21 (2) 15 47 25 84 21(3) 15 21 25 84 47 (4) 15 21 25 47 84 则采用的排序是 ( )。 选择 B. 冒泡 C. 快速 D. 插入7下列排序算法中( )不能保证每趟排序至少能将一个元素放到其最终的位置上。 A.快速排序 B. shell排序 C. 堆排序 D.冒泡排序,A,B,一、选择题,8下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( )排序。 A 冒泡 B. 希尔 C. 快速 D. 堆 9. 对初始状态为递增序列的表按递增顺序排序,最省时间的是(
4、 )算法,最费时间的是( )算法。堆排序 B. 快速排序 C. 插入排序 D. 归并排序,C,C,B,一、选择题,10在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( ) A直接插入排序 B冒泡排序 C简单选择排序 11从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( )排序法。 A. 插入 B. 选择 C. 希尔 D. 二路归并,A,A,一、选择题,12. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( )。 选择 B. 冒泡 C. 插入 D. 堆13
5、. 一组记录为(46,79,56,38,84,40),则采用冒泡排序法按升序排列时,第一趟排序结果是( )46,79,56,38,40,84 46,56,38,79,40,84 C) 38,40,46,56,84,79 D) 38,46,79,56,40,84,A,B,二、判断题,1排序算法中的比较次数与初始元素序列的排列无关。( ) 2排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。( ) 3在初始数据表已经有序时,快速排序算法的时间复杂度为O(nlog2n )。( ) 4在待排数据基本有序的情况下,快速排序效果最好。( ) 5在用堆排序算法排序时,如果要进行增序排序,则需要采
6、用“大根堆”。( ) 6堆排序是稳定的排序方法。( ) 7、希尔排序在效率上较直接插入排序有较大的改进。但是不稳定的。 ( ),三、填空题,1若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的_和记录的_。 2分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是 算法,最费时间的是_算法。 3. 快速排序、希尔排序、直接插入排序中, 排序是稳定的。,比较,移动,冒泡,快速,直接插入,四、应用题,1、以关键字序列(256,301,751,129,937,863,742,694,076,438)为例,写出用下列算法从小到大排序时各趟排序结束时,关键字序列的
7、状态。 1)直接插入排序 2)希尔排序(取dk=5,3,1),四、应用题,2、给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18)。写出用下列算法从小到大排序时第一趟结束时,关键字序列的状态。 1)希尔排序(第一趟排序的增量为5) 2)快速排序(选第一个记录为枢轴(分隔),1、以顺序表作为存储结构,试实现快速排序的划分算法和直接插入排序算法。已知顺序表存储结构的抽象数据类型定义如下所示:# define MAXSIZE 100; Typedef int KeyType; Typedef struct /定义每个记录(数据元素)的结构KeyType key; /关键码定义 InfoType otherinfo; /其它数据项 ElemType; Typedef struct /定义顺序表L的结构ElemType data MAXSIZE +1 ; /存储顺序表的向量int length ; /顺序表的长度 SqList ,L; /定义类型标识符。,五、算法设计题,