题解 | #排序#
排序
https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
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 static void quickSort(int[] arr,int left,int right){ //递归结束条件 if(left>right){ return; } int i= left,j = right;//定义左右两边探针 int base = arr[left];//定义中间值并指向元素首位 while(i<j){ while(arr[j]>=base && i<j){ j--; } while(arr[i]<=base && i<j){ i++; } if(i<j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } //每轮结束后交换中间值 arr[left] = arr[i]; arr[i] = base; //左右两边递归调用 quickSort(arr,left,j-1); quickSort(arr,j+1,right); } }