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 }
时间: 2024-10-11 22:22:03