(你的排序学的怎样?)排序专项练习

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题对照着看)



原文地址:https://www.cnblogs.com/wzjhoutai/p/7279876.html