快排思想,平均时间复杂度O(n),最坏时间复杂度O(n2)
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; } public void quickSort(int[] arr, int left, int right) { if (left < right) { int mid = partition(arr, left, right); quickSort(arr, left, mid - 1); quickSort(arr, mid + 1, right); } } public int partition(int[] arr, int i, int j) { int pivot = arr[i]; while (i < j) { while (i < j && arr[j] >= pivot) j--; arr[i] = arr[j]; while (i < j && arr[i] <= pivot) i++; arr[j] = arr[i]; } arr[i] = pivot; return i; } }