快排思想O(N)求第k大數
int quicksort(int l,int r,int k)
{
int midv = a[(l+r)>>1];
int i = l,j = r;
while(i <= j)
{
while(a[i] < midv)i++;
while(a[j] > midv)j--;
if(i <= j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if(l <= j && k <= j) return quicksort(l,j,k);
if(i <= r && k >= i) return quicksort(i,r,k);
return a[k];
}