排序试题汇总 一、填空题(每空 1 分,共 24 分) 1
大多数排序算法都有两个基本的操作: 比较(两个关键字的大小) 和 移动(记录或改变指向记录的指针)
在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7 个记录60 插入到有序表时,为寻找插入位置至少需比较 3 次
(可约定为,从后向前比较) 3
在插入和选择排序中,若初始数据基本正序,则选用 插入排序(到尾部) ;若初始数据基本反序,则选用 选择排序
在堆排序和快速排序中,若初始记录接近正序或反序,则选用 堆排序 ;若初始记录基本无序,则最好选用 快速排序
对于 n 个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是 O(n2)
若对其进行快速排序,在最坏的情况下所需要的时间是 O(n2)
对于 n 个记录的集合进行归并排序,所需要的平均时间 是 O(nlog2n) ,所需要的附加空间是 O(n)
7.【计研题2000】对于 n 个记录的表进行 2 路归并排序,整个归并排序需进行 log2n 趟(遍),共计移 动 n log2n 次记录
(即移动到新表中的总次数
共 log2n 趟,每趟都要移动n 个元素) 8
设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则: 冒泡排序一趟扫描的结果是 H, C, Q, P, A, M, S, R, D, F, X ,Y ; 初始步长为 4 的希尔(shell)排序一趟的结果是 P, A, C, S, Q, D, F, X , R, H,M, Y ; 二路归并排序一趟扫描的结果是 H, Q, C, Y,A, P, M, S, D, R, F, X ; 快速排序一趟扫描的结果是 F, H, C, D, P, A,