带重复数字的排序
题目描述
给定一个数组,请你编写一个函数,返回该数组排序后的形式。
代码
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 l, int r){
if(l > r) return;
int tmp = arr[l];
int i = l;
int j = r;
while(i<j){
while(i < j && arr[j] >= tmp) j--;
while(i < j && arr[i] <= tmp) i++;
if(i<j){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[l] = arr[i];
arr[i] = tmp;
quickSort(arr, l, i-1);
quickSort(arr, i+1, r);
}
}