问题描述:
输入一组数,使用快速排序排序
import java.util.Scanner;
public class 快排 {
public static void show(int[] arr)
{
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
}
public static int[] quickSort(int[] arr, int low, int high) {
if(low > high) {
return arr;
}
int tmp = arr[low];
int i = low;
int j = high;
while(i < j) {
while(arr[j] >= tmp && i < j) {
j--;
}
arr[i] = arr[j];
while(arr[i] <= tmp && i < j) {
i++;
}
arr[j] = arr[i];
}
arr[i] = tmp;
quickSort(arr, low, j-1);
quickSort(arr, j+1, high);
return arr;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] arr =new int[n];
for(int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
if(arr[i]==0)break;
}
quickSort(arr, 0, arr.length-1);
show(arr);
}
}
输出结果为:
5
2 14 5 3 1
1 2 3 5 14