问题 单项选择题

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

(60)处填()。

A.冒泡排序

B.插入排序

C.快速排序

D.堆排序

答案

参考答案:C

解析:

(59)、(60)[分析]

本题考查排序算法及特点。

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

单项选择题
多项选择题