import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param a int整型一维数组 * @param n int整型 * @param K int整型 * @return int整型 */ public int findKth (int[] a, int n, int K) { // write code here int[] res = new int[1]; quikSort(a, 0, n - 1, K, res); return res[0]; } public void quikSort(int[] a, int l, int r, int K, int[] res) { if (l > r) return; int pivot = a[l]; int i = l, j = r; while (i < j) { while (i < j && a[j] >= pivot) j--; while (i < j && a[i] <= pivot) i++; if (i < j) swap(a, i, j); } swap(a, l, i); // 把 pivot 放到最终位置 if (a.length - K == i) { res[0] = a[i]; return; } quikSort(a, l, i - 1, K, res); quikSort(a, i + 1, r, K, res); } public void swap(int[] a, int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } }