题目详情

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

  • A.快速排序
  • B.归并排序
  • C.堆排序
  • D.冒泡排序

正确答案及解析

正确答案
B
解析

A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案解析:B本题考查数据结构基础知识。

快速排序、归并排序、堆排序是时间复杂度为0(nlog2n)排序方法,冒泡排序时间复杂度是0(n2)。

快速排序过程主要是划分操作,划分是以基准元素为界,从序列两端向中间扫描,将大于基准元素者往后端移动(或交换),不大于基准元素者向前端移动(或交换),移动元素时不考虑所涉及两个位置之间其他元素,这样就不能保证序列中两个相同元素相对位置不变,也就是说快速排序是不稳定排序方法。

堆排序是要求序列中ai,a2i,a2i-1这三个元素满足ai最小(小顶堆)或最大(大顶堆),若不满足,则通过交换进行调整,这样,在ai与a2i之间若有相等两个元素,则交换后就不能保证它们相对位置,所以堆排序是不稳定排序方法。

归并排序是稳定排序方法。

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +