import java.util.*;
public class Solution {
public int[] MySort (int[] arr) {
// write code here
return quickSort(arr, 0, arr.length-1);
}
public int[] quickSort(int[] arr, int left, int right){
if(left < right){
int point = partition(arr, left, right);
quickSort(arr,left,point-1);
quickSort(arr,point+1,right);
}
return arr;
}
// 快速排序,选择一个元素作为基准元素,对待排序元素进行分区,比基准大的放在右边,比基准小的放在左边
public int partition(int[] arr, int left, int right){
int base = arr[left];
while(left < right){
while(left < right && arr[right] >= base){
right--;
}
swap(arr, left, right);
while(left < right && arr[left] <= base){
left++;
}
swap(arr, left, right);
}
return left;
}
public void swap(int[] arr, int left, int right){
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}