int partition(int A[], int l, int r) {
int pivot = A[l];
while (l < r) {
while (l < r && A[r] >= pivot) r--;
A[l] = A[r];
while (l < r && A[l] <= pivot) l++;
A[r] = A[l];
}
A[l] = pivot;
return l;
}
int findJth(int A[],int j, int l, int r) {
int k = partition(A, l, r);
if (k == j) return A[j];
if (k < j)
return findJth(A, j, k + 1, r);
else
return findJth(A, j, l, k - 1);
}
快排思想找到无序记录中从小到大第j个元素
最新推荐文章于 2024-05-13 08:33:52 发布