1.当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省()
A. 对
B. 错
答案:B
根据快排的特点可知,快速排序基本有序情况下效率最低,在基本无序情况下效率最高。
2.以下排序中时间复杂度最差的是
A. 归并排序
B. 选择排序
C. 希尔排序
D. 堆排序
答案:B
排序方法 |
平均时间 |
最好时间 |
最坏时间 |
桶排序(不稳定) |
O(n) |
O(n) |
O(n) |
基数排序(稳定) |
O(n) |
O(n) |
O(n) |
归并排序(稳定) |
O(nlogn) |
O(nlogn) |
O(nlogn) |
快速排序(不稳定) |
O(nlogn) |
O(nlogn) |
O(n^2) |
堆排序(不稳定) |
O(nlogn) |
O(nlogn) |
O(nlogn) |
希尔排序(不稳定) |
O(n^1.25) |
||
冒泡排序(稳定) |
O(n^2) |
O(n) |
O(n^2) |
选择排序(不稳定) |
O(n^2) |
O(n^2) |
O(n^2) |
直接插入排序(稳定) |
O(n^2) |
O(n) |
O(n^2) |
3.最坏情况下 insertsort, quick sort ,merge sort的复杂度分别是多少?
A. O(n*n),O(nlogn),O(n*n)
B. O(n*n),O(n*n),O(nlogn)
C. O(n*n),O(nlogn),O(nlogn)
D. O(nlogn),O(nlogn),O(nlogn)
答案:B
要注意,快排在最坏情况下复杂度为O(n*n),而合并排序不受初始状态有序程度的影响。
4.设某文件经内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,且要求三趟归并完成排序,问归并路数最少为
A. 8
B. 7
C. 6
D. 5
答案:D
5^3=125>100
5.将一个从大到小的数组,用以下排序方法排序成从小到大的,()最快。
A. 插入排序
B. 冒泡排序
C. 快速排序
D. 堆排序
答案:D
上述情况对于插入排序、冒泡排序、快速排序都是最差情况
6.快速排序方法在()情况下最不利于发挥其长处
A. 要排序的数据量太大
B. 要排序的数据中含有多个相同值
C. 要排序的数据个数为奇数
D. 要排序的数据已基本有序
答案:D
可以参考1题
7.下列排序算法中,在待排序数据有序的情况下,花费时间最多的是()
A. 快速排序
B. 希尔排序
C. 冒泡排序
D. 堆排序
答案:A
可以参考1题
8. 下列排序算法中,其时间复杂度和记录的初始排列无关的是
A. 插入排序
B. 堆排序
C. 快速排序
D. 冒泡排序
答案:B
9.有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列()排序算法一趟扫描结果。
A. 堆排序
B. 快速排序
C. 希尔排序
D. 冒泡排序
答案:B
感觉这种题基本上都是在说快排。。。
10.在待排序的元素序列基本有序的前提下,效率最高的排序方法是?
A. 插入排序
B. 选择排序
C. 快速排序
D. 归并排序
答案:A(注意和第5题对比着看)