import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * @param arr int整型一维数组 待排序的数组 * @return int整型一维数组 */ public int[] MySort (int[] arr) { // write code here quickSort(arr, 0, arr.length - 1); return arr; } void quickSort(int[] arr, int left, int right) { if(left < right) { int lo = left, hi = right, base = arr[left]; while(lo < hi) { // 从右到左寻找第一个小于base的下标,补坑 while(lo < hi && arr[hi] >= base) { hi--; } if(lo < hi) { arr[lo++] = arr[hi]; } // 从左到右寻找第一个大于base的下标,补坑 while(lo < hi && arr[lo] <= base) { lo++; } if(lo < hi) { arr[hi--] = arr[lo]; } } // 此时 base 左边和右边的元素分别都小于和等于base arr[lo] = base; quickSort(arr, left, lo - 1); quickSort(arr, hi + 1, right); } } }