您所指的是选择算法,如前所述.具体来说,您对quicksort的引用表明您正在考虑基于分区的选择.
以下是它的工作原理:
此算法也适用于查找最高m个元素的排序列表...只需选择第m个最大元素,然后对其上方的列表进行排序.或者,对于速度稍快的算法,请执行Quicksort算法,但拒绝递归到与要查找已排序值的区域不重叠的区域.
关于这一点的真正好处是它通常在O(n)时间内运行.第一次,它看到整个列表.在第一次递归时,它看到大约一半,然后是四分之一等等.因此,它查看大约2n个元素,因此它在O(n)时间内运行.不幸的是,就像在快速排序中一样,如果你一直选择一个不好的支点,你将在O(n 2)时间内运行.
| 归档时间: |
|
| 查看次数: |
12302 次 |
| 最近记录: |