题解 | #排序#
排序
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);
}
}

