文章目录 1. 题目2. 思路(1) 快速排序 3. 代码 1. 题目 2. 思路 (1) 快速排序 利用快速排序将数组按照从大到小的顺序排列,当pivot落在k-1上时,可以提前返回。 3. 代码 public class Test { public static void main(String[] args) { } } class Solution { public int findKth(int[] a, int n, int K) { sort(a, 0, n - 1, K - 1); return a[K - 1]; } public void sort(int[] arr, int left, int right, int k) { if (left < right) { int low = left; int high = right; int pivot = arr[low]; while (low < high) { while (low < high && arr[high] <= pivot) { high--; } arr[low] = arr[high]; while (low < high && arr[low] >= pivot) { low++; } arr[high] = arr[low]; } arr[low] = pivot; if (low == k) { return; } sort(arr, left, low - 1, k); sort(arr, low + 1, right, k); } } }