1、第九章排列一、填空题1在对一组记录(50,40,95,20,15,70,60,45,so)进行直接插入排序时,当把第7 个记录 60 插入到有序表时,为寻找插入位置需比较 次。1在对组记录(50,40,95,20,15,70,60,45,80)进行希尔(shell)排序时,假定取 Di+1=di/2,0i=t-1,其中 t= log2n,d0=n,dt=1,n 为待排序记录的个数,则第二趟排序结束后的 4 条记录为 3在对一组记录(50,40,95,10,15,70,60,45,80)进行直接选择排序时,第 4次交抉和选择后,末排序记录(即无序表)为 。4在对一组记录(50,40,95,20,
2、15,70,60,45,80 )进行堆排序时,根据初始记录构成初始堆后,最后 4 条记录为 5在对-组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一趟需进行相邻记录的交换的次数为 ,在整个排序过程中共需进行 趟才可完成。6在利用快速排序方法对组记录(50,40,95,10,15,70,60,45,80)进行快速排序后递归凋用使用的栈所能达到的最大深度为 ,其需递归调用的次数为 ,其中第二次递归调用是对 一组记录进行快速排序。7 在归并排序中,若待排序记录的个数为 20,则共需要进行 趟归并,在第三趟归并中,是把长度为 的有序表归并为长度为 的有序表,8在堆排序
3、和快速排序中,若原始记录接近正序或反序,则选用 ,若原始记录无序,则最好选用 9在直按插入和直接选择排序中,若初始数据基本有序,则选用 ,若初始数据基本反序,则选用 。10在堆排序,快速排序利归并排序中,若从节省存储空间考虑,则应首先选取方法,其次选取 方法,最后选取 方法;若只从排序结果的稳定性考虑,则应选择 方法:若只从平均情况下排序的速度来考虑,则选择方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取 方法。11在内部排序中,平均比较次数最少的是 ,要求附加的内存容量最大的是, 排序时不稳定的有 , , , 等几种方法.12。 目前以比较操作为基础的内部排序的时间复杂度 T(m)
4、的范围是 :其比较次数与待排序记录的初始状态无关的是 。 113从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序要一个栈空间来实现递归,若每一次快速排序都将记录序列均匀地分割成长度相接近的两个子序列,则栈的最大深度(含最外层也进栈)为 ;在最坏情况下,栈的深度为 ;如果每次先对较短的子序列进行快速排序,则栈的最大深度降为 ,所需要的附加空间为 。14,对 n 个元素的序列进行冒泡排序,最少的比较次数是 ,此时元素的排列情况 ,在 的情况下比较次数最多,其比较次数为 。15对于直接插入排序,冒泡排序,简单选择排序,堆排序,快速排序有:(1)当文件“局部有序”或文件长度较小的
5、情况下,最佳的内部排序方法是 ;(2)快速排序在最坏情况下时间复杂度是 比 性能差。(3)就平均时间而言, 最佳 o二、选择题、在归并排序过程中,需归并的趟数为 ()n (B) n (C) log2n (D)log2n2从未排序序列中依次取出元素与己排序序列中的元素作比较,将其放入已排序序列中的正确位置上,此方法称为 ;从未排序序列中挑选元素,并将其放入己排序序列的端,此方法称为 ;依次将每两个相邻的有序表合并成一个育序表的排序方法叫做 :当两个元素比较出现反序时(即逆序)就相互交换位置的排序方法叫做 (A)归并排序 (B)选择排序(C)交换排序 (D)插入排序3直接插入排序和冒泡排厅的时间复
6、杂度为 ,若初始数据有序(即正序) ,则时间复杂度为 。(A)O(n) (B)O(lg2n) (C)O(nlog2n) (D)O(n2)4在所有排序方法中,关键字的比较次数与记录的初始排列无关的是 。(A)Shell 排序 (B)冒泡排序(c)直接插入排序 (D)直接选择排序5在直接选择排序中,记录比较次数为 数量级,记录的移动次数为 数量级.(A)O(n) (B)O(log2n) (C)O(n2) (D)O(nlog2n)6一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方浊建立的初始堆为 (A) (80,45,55,40,42,85) (B) (85。80,55,4
7、0,42,45)(C) (85,80,55,45,42,40) (D) (85,55,80,42,45,40)7在堆排序过程中,由 n 个待排序的记录建成初始堆需要 次筛选;由初始堆到堆排序结束需要进行 次筛选运算:在每次筛运算的过程中,记录的比较和移动次数的数量级为 ,堆排序算法的时间复杂度为 (A)n D)n2 (C)log2n (D)n-1(A)O(10g2n) (B)O(n) (C)O(nlog2) (D)O(n 2)8,一组记录的关键字为(45,80,55,40,42,85) ,则利用快速排序的方法,以第一个记录为基准得到一次划分结果是 (A) (40,42,45,55,80,85)
8、 (B) (42,40,45,80,55,85)(C) (42,40,45,55,80,85) (D) (42,40,45,85,55,80)9每次把待排序的元素划分为左、右两个子区间,其中左区间中元素的关键字均小于等于基准元素的关键字,右区间中元素的关键字均大于等于基准元素的关键字,则此排序方法叫做 。(A)堆排序 (B)快速排序 (C)冒泡排序 (D)Shell 排序10.在平均情况下,快速排序时间复杂度为 ,空间复杂性为 : 在最坏情况下(如初始记录已有序),快速排序的时间复杂度为 ,空间复杂性为 (A)O(n) (B)O(10g2n) (C)O(nlog2n) (D)O(n2)11.一
9、组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有 5个长度为 2 的有序表,用归并排序方法对该序列进行一趟归并后的结果为 (A)15,25,35,50,20,40,80,85,36,70(13)15,25,35,50,80,20,85,40,70,36(C)15,25,50,35,80,85,20,36,40,70(D)15,25,35,50,80,20,36,40,70,8512,在归并排序中,归并趟数的数量级表示为 ,每趟需要进行记录的比较和移动次数的数量级表示为 ,归并排序算法的时间复杂度为 。(A)O(n) (B)O(10g2n) (C)O(nl
10、og2n) (D)O(n2)13.将 5 个不同的数据进行排序,至少需要比较 1 次,至多需要比较 2 次。(A)4 (B)5 (C)6 (D)7(A)8 (B)9 (C)10 (D)2514.设关键字序列为(3,7,6,9,7,1,4,5,20),对其进行排序的最小交换次数是 。(A)6 (B)7 (C)8 (D)2015.快速排序在 情况下最不利于发挥其长处,在 情况下最易发挥其长处。(A)被排序数据量很大 ()被排序数据已基本有序(C) 被排序数据完全无序 (D) 被排序数据中最大的值与最小值相差不大三、应用1. 希尔排序、简单选择排序、快速排序和堆排序是不稳定的排序方法, 试举例说明。2. 试修改起泡排序算法,在正反两个方向交替进行扫描,即第一趟把排序码最大的对象放到序列的最后,第二趟把排序码最小的对象放到序列的最前面。如此反复进行