private int quickSelect(int[] arr, int k) {
int from = 0, to = arr.length - 1;
while (from < to) {
int l = from, r = to;
int mid = arr[l + (r - l)/2];
while (l < r) {
if (arr[l] >= mid) {
int temp = arr[r];
arr[r] = arr[l];
arr[l] = temp;
r--;
} else {
l++;
}
}
if (arr[l] > mid) {
l--;
}
if (k <= l) {
to = l;
} else {
from = l + 1;
}
}
return arr[k];
}
Kth Smallest element
最新推荐文章于 2022-04-14 14:33:13 发布