参考算法导论9.2
R_Select(int *a,int p,int r,int i){
if(p==r)
return a[p];
int q=partition(a,p,r);
int k=q-p;
if(i==k)
return a[q];
else if(i<k)
return R_Select(a,p,q-1,i);
else
return R_Select(a,q+1,r,i-k);
}log(n)时间内找出数组第i小的数字,布布扣,bubuko.com
原文地址:http://blog.csdn.net/my_acm/article/details/38062005