题目描述
给定你一个长度为n的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
样例
输入样例:
5
3 1 2 4 5
输出样例:
1 2 3 4 5
算法1
public static void quickSort(int[] arrays,int leftIndex,int rightIndex){
if (leftIndex >= rightIndex){
return;
}
int left = leftIndex, right = rightIndex;
int pivot = left;
while (left < right){
while (left < right && arrays[right] >=arrays[pivot]) --right;
while (left < right && arrays[left] <= arrays[pivot]) ++left;
swap(arrays, right, left);
}
swap(arrays, left, pivot);
quickSort(arrays,leftIndex,left - 1);
quickSort(arrays,left + 1,rightIndex);
}
private static void swap(int[] arrays, int a, int b){
int temp = arrays[a];
arrays[a] = arrays[b];
arrays[b] = temp;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i]=input.nextInt();
}
quickSort(arr,0,n-1);
System.out.println(Arrays.toString(arr));
}