首页 > 代码库 > 快排找第k大模板

快排找第k大模板

 1 int get_kth(int l,int r) 2 { 3     if (l==r) 4         return a[r]; 5     int i=l,j=r,mid=a[(l+r)>>1]; 6     while (i<j) 7     { 8         while (a[i]<mid) 9             i++;10         while (a[j]>mid)11             j--;12         if (i<j)13         {14             swap(a[i],a[j]);15             i++;16             j--;17         }18     }19    if (k<=j) return get_kth(l,j);20    if (k>=i) return get_kth(i,r);21 }

 

快排找第k大模板