int Partition(int *A,int low,int hight){
int key=A[low];
while(low<high){
while(low<high&&A[high]>=key)
--high;
swap(A[low],A[high]);
while(low<high&&A[low]<=key)
++low;
swap(A[low],A[high]);
A[low]=key;
return low;
}
int minI(int i,int *A,int m,int n)
{
int p=Partition(A,m,n);
if(p==i) return A[p];
if(p>i) return minI(i,*A,m,p);
if(p<i) return minI(i-p,*A,p,n);
}
運用快排思想,設計遞歸算法實現求n個不同元素集合中第i小的元素。