1. 问题
在一个数组S中查找第k小的元素。
2. 解析
3. 设计
int quick_select_min_2(int a[], int len, int k)
{
int left = 0;
int right = len - 1;
int s;
// 直到返回的下标是 k-1 为止
while( (s = Lomuto_partition(a, left, right)) != (k-1) )
{
if(s < k-1)
left = s+1; //处理右边的部分
else
right = s-1; // 处理左边的部分
}
return a[s];
}
4. 分析
5. 源码
https://github.com/dickdan/6.1-find-k-th-