快速排序(直接)-初
阿新 • • 發佈:2018-11-14
import java.util.Scanner; public class QuickSort_1 { static void show(int []arr) { for(int i=0;i<arr.length;i++) System.out.print(arr[i]+" "); } static void sort(int []arr,int low,int high) { if(high-low<1) return; int l=low; int h=high; int key=arr[l]; boolean flag=true; L1: while(l<h) { if(flag) { for(int i=h;i>l;i--) if(arr[i]<=key) { arr[l]=arr[i]; l++; flag=!flag; h=i; continue L1; } h=l; } else { for(int i=l;i<h;i++) if(arr[i]>=key) { arr[h]=arr[i]; h--; flag=!flag; l=i; continue L1; } l=h; } } arr[l]=key; sort(arr,low,l-1); sort(arr,l+1,high); } public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int []arr=new int[n]; for(int i=0;i<arr.length;i++) arr[i]=sc.nextInt(); show(arr); sort(arr,0,arr.length-1); System.out.println(); show(arr); } }