对于具有n个元素的一个数据序列,若只需得到其中第k个元素之前的部分排序,最好采用(59),使用分治(Divide and Conquer)策略的是(60)算法。A.希尔排序B.直接插入排序C.快速排序D.堆排序

题目

对于具有n个元素的一个数据序列,若只需得到其中第k个元素之前的部分排序,最好采用(59),使用分治(Divide and Conquer)策略的是(60)算法。

A.希尔排序

B.直接插入排序

C.快速排序

D.堆排序


相似考题
参考答案和解析
正确答案:D
解析:本题考查排序算法及特点。对于希尔排序、直接插入排序,只有在排序过程后才能确保全部序列以及前k个元素的最终排列,快速排序采用分治算法,常用递归算法实现,该算法根据枢轴元素进行划分,第一趟划分结束后得到了两个子序列,一个序列中的元素均不大于另一个子序列中的元素,枢轴元素介于这两个子序列之间。若仅需得到最终序列的前k个元素,每次得到枢轴元素位置后再考虑下一步的排序过程,在算法的流程控制上比较复杂。对于只需得到最终序列的前k个元素,堆排序比较简单。
更多“对于具有n个元素的一个数据序列,若只需得到其中第k个元素之前的部分排序,最好采用(59),使用分治( ”相关问题
  • 第1题:

    如果只想得到1024个元素组成的序列中第5个最小元素之前的部分排序的序列,用 ( )方法最快。

    A.冒泡排序

    B.快速排序

    C.简单选择排序

    D.堆排序


    正确答案:D
    解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项D。

  • 第2题:

    对于具有n个元素的一个数据序列,若只需要得到其中第A个元素之前的部分排序,最好采用(43)。

    A.堆排序

    B.希尔排序

    C.快速排序

    D.直接插入排序


    正确答案:A
    解析:对于具有n个元素的一个数据序列,对于只需得到最终序列的前k个元素,最好采用堆排序。对于希尔排序、直接插入排序,只有在排序过程后才能确保全部序列及前k个元素的最终排列。快速排序采用分治算法,常用递归算法实现,该算法根据枢轴元素进行划分,第一趟划分结束后得到了两个子序列,一个序列中的元素均不大于另一个子序列中的元素,枢轴元素介于这两个子序列之间。若仅需得到最终序列的前k个元素,每次得到枢轴元素位置后再考虑下一步的排序过程,在算法的流程控制上比较复杂。

  • 第3题:

    对于一个序列中的若干元素,若想得到某个元素之前的部分排序,最好采用什么排序方法? ( )

    A.快速排序

    B.堆排序

    C.基数排序

    D.希尔排序


    正确答案:B

  • 第4题:

    一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用_______方法

    A.快速排序

    B.堆排序

    C.插入排序

    D.二路归并排序


    正确答案:B

  • 第5题:

    对于具有n个元素的一个数据序列,若只需得到其中第k个元素之前的部分排序,最好采用(63)。

    A.堆排序

    B.希尔排序

    C.快速排序

    D.直接插入排序


    正确答案:A
    解析:对于具有n个元素的一个数据序列,对于只需得到最终序列的前k个元素,堆排序比较简单。对于希尔排序、直接插入排序,只有在排序过程后才能确保全部序列及前k个元素的最终排列。快速排序采用分治算法,常用递归算法实现,该算法根据枢轴元素进行划分,第一趟划分结束后得到了两个子序列,一个序列中的元素均不大于另一个子序列中的元素,枢轴元素介于这两个子序列之间。若仅需得到最终序列的前k个元素,每次得到枢轴元素位置后再考虑下一步的排序过程,在算法的流程控制上比较复杂。