快速排序算法的平均时间复杂度为()。A、O(n)B、O(n2)C、O(nlog2n)D、O(log2n!)

题目

快速排序算法的平均时间复杂度为()。

  • A、O(n)
  • B、O(n2)
  • C、O(nlog2n)
  • D、O(log2n!)
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在最坏情况下,堆排序的时间复杂度是()。

A.O(nlog2n)

B.0(log2n)

C.o(n2)

D.o(n1.5)


正确答案:A

第2题:

对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是()

A. O(n)

B. O(n2)

C. O(nlog2n)

D. O(n3)


正确答案:B

第3题:

二路归并排序的时间复杂度为()。

A、O(n)

B、O(n2)

C、O(nlog2n)

D、O(1og2n)


参考答案:C

第4题:

冒泡排序的时间复杂度为A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)


正确答案:B
冒泡排序的基本概念是:以升序为例,依次比较相邻的两个数,将小数放在前面,大数放在后面。第一趟排序过程是这样的,首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。这样一次排序后,最后一个数为所有数中的最大数。第二趟排序重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
冒泡排序的时间复杂度是指执行冒泡排序算法所需要的时间。冒泡排序算法最好的时间复杂度为所要排序的数列为正序,即在执行排列算法之前就已经达到目标的顺序。这样只需要执行一次排序算法,算法所需要进行数据比较的次数为n-1次。冒泡排序算法最差的时间复杂度为当前所要进行排列的数列顺序与目标数列的顺序相反。算法所需要进行数据比较的次数为n(n-1)/2=O(n2)。算法的平均时间复杂度为O(n2)。

第5题:

用快速排序的方法对包含n个关键字的序列进行排序,最坏情况下执行的时间为

A.O(n)

B.O(log2n)

C.O(nlog2n)

D.O(n2)


正确答案:D
解析:快速排序的平均执行时间为O(nlog2n),优于冒泡排序,直接插入排序方法,但最坏的情况,即记录初始已排好序的情况下,执行时间为O(n2)。

第6题:

对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A.O(n)

B、O(n2)

C、O(nlog2n)

D、O(n3)


参考答案:B
解释:快速排序的平均时间复杂度为O(nlog2n),但在最坏情况下,即关键字基本排好序的情况下,时间复杂度为O(n2)。

第7题:

对于快速排序,元素有序排列时的时间复杂度为(57)。

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)


正确答案:D
解析:对于快速排序,元素有序排列是其最坏情况,时间复杂度为O(n2)。当每次划分都可以将待排序列分为均匀的两部分时,进行的排序趟数最少,时间复杂度为O(nlog2n)。

第8题:

直接选择排序的时间复杂度为()。(n为元素个数)

A.O(n)

B.O(log2n)

C.O(nlog2n)

D.O(n2)


正确答案:D

第9题:

对n个元素进行快速排序时,最坏情况下的时间复杂度为(55)。

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)


正确答案:D
解析:快速排序在最坏情况下的时间复杂度退化到一般的交换排序,即为O(n2)。

第10题:

用归并排序方法,在最坏情况下的时间复杂度为( )。

A.O(n+1)

B.O(n2)

C.O(log2n)

D.O(nlog2n)


正确答案:D
解析:一个完整的归并排序需要进行[log2n)次,实现归并排序需要和代派序列元素个数等量的辅助空间,其时间复杂度为O(nlog2n)。

更多相关问题