参考算法导论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