public class QuickSortDemo {public static void main(String[] args) {int[] arr = {12,36,56,44,9,44,18};sort(arr , 0 , arr.length-1);System.out.println("排序后:"+Arrays.toString(arr));}public static void sort(int[] arr, int left, int right) {if(arr==null || arr.length==0 || arr.length==1){return;}quickSort(arr, left, right);}/*** 快速排序* @param arr 排序的数组* @param left 从左开始的坐标* @param right 从右开始的坐标* 递归调用*/public static void quickSort(int[] arr, int left, int right) {//出口条件if(left>=right){return;}//初始变量int i = left;int j = right;int temp = arr[left];//移动while (i<j){//从右往左while (i<j && arr[j]>=temp){j--;}//放置元素的点if(i<j){arr[i++] = arr[j];}//从左往右while (i<j && arr[i]<=temp){i++;}//放置元素的点if(i<j){arr[j--]=arr[i];}//移动完毕一轮System.out.println(Arrays.toString(arr));}//分治法arr[i] = temp;//在i的左边都比temp小 左quickSort(arr,left,i-1);//在i的右边都比temp大 右quickSort(arr,i+1,right);}}