首页 试题详情
单选题

若要求对大小为n的数组进行排序的时间复杂度为O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是(39)。

A快速排序

B归并排序

C堆排序

D冒泡排序

正确答案

答案解析

A.  快速排序B.  归并排序C.  堆排序D.  冒泡排序答案解析:B本题考查数据结构基础知识。
快速排序、归并排序、堆排序是时间复杂度为0(nlog2n)的排序方法,冒泡排序的时间复杂度是0(n2)。
快速排序的过程主要是划分操作,划分是以基准元素为界,从序列的两端向中间扫描,将大于基准元素者往后端移动(或交换),不大于基准元素者向前端移动(或交换),移动元素时不考虑所涉及两个位置之间的其他元素,这样就不能保证序列中两个相同元素的相对位置不变,也就是说快速排序是不稳定的排序方法。
堆排序是要求序列中ai,a2i,a2i-1这三个元素满足ai最小(小顶堆)或最大(大顶堆),若不满足,则通过交换进行调整,这样,在ai与a2i之间若有相等的两个元素,则交换后就不能保证它们的相对位置,所以堆排序是不稳定的排序方法。
归并排序是稳定的排序方法。

相似试题

  • 单选题

    要求大小n数组进行排序时间复杂度O(nlog2n),且是稳定(即如果待排序序列中两个数据元素具有相同值,在排序前后它们相对位置不变),则可选择排序方法是(39)。

    答案解析

  • 单选题

    要求大小n数组进行排序时间复杂度,且是稳定(即如果待排序序列中两个数据元素具有相同值,在排序前后它们相对位置不变),则可选择排序方法是( )

    答案解析

  • 单选题

    Array对象( )方法用于数组元素进行排序

    答案解析

  • 单选题

    快速排序算法是,在排序过程中,在待排序数组中确定一个元素基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于基准元素,而后面一部分元素值大于基准元素。然后再分别前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了 ( ) 算法设计策略。已知确定着基准元素操作时间复杂度O(n),则快速排序算法最好和最坏情况下时间复杂度 (请作答此空) 。

    答案解析

  • 单选题

    需在 O(nlog2n)时间内完成数组排序,且要求排序是稳定,则可选择排序方法是( )。

    答案解析

热门题库