快速选择Quickselect

分区后只处理包含第 k 小元素的一侧。

核心约束
目标秩始终位于剩余候选分区。
适用问题
分位数、中位数与无需全排序的 Top-K 边界。
边界与取舍
枢轴和最坏情况保护需要单独设计。

时间与空间#

n 为元素数;随机化分区选择第 k 小元素。

时间复杂度
期望 O(n)O(n);最坏 O(n2)O(n^{2})
辅助空间
原地迭代实现 O(1)O(1)

每次只继续进入包含目标秩的一侧。选择结果不代表两侧已经完整排序。Median-of-medians 等策略可给线性最坏界,但不是普通随机 quickselect 的保证。

基础原理参考资料

Princeton · Quick.select原地分区选择的实现接口。

Princeton · Quicksort exercises随机划分和选择问题的分析。

12 个概念