publicclassA03_InsertDemo{publicstaticvoidmain(String[] args){int[] arr ={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};quickSort(arr,0, arr.length -1);printArr(arr);}privatestaticvoidprintArr(int[] arr){//3.遍历数组for(int i =0; i < arr.length; i++){System.out.print(arr[i]+" ");}System.out.println();}publicstaticvoidswap(int[] arr,int a,int b){int temp = arr[a];
arr[a]= arr[b];
arr[b]= temp;}publicstaticvoidquickSort(int[] arr,int start,int end){if(start > end)return;int i = start;int j = end;int numIndex = arr[start];while(i < j){while(i < j && arr[j]> numIndex) j --;while(i < j && arr[i]< numIndex) i ++;swap(arr, i, j);}swap(arr, i, j);quickSort(arr, start, i -1);quickSort(arr, i +1, end);}}
2.桶排序
importjava.util.ArrayList;importjava.util.Collections;publicclassBucketSort{publicstaticvoidmain(String[] args){double[] arr =newdouble[]{0.89,0.56,0.34,0.91,0.78,0.12,0.25};bucket(arr);for(int i =0; i < arr.length; i++){System.out.print(arr[i]+" ");}}publicstaticvoidbucket(double[] arr){int bucketNum = arr.length;ArrayList<Double>[] buckets =newArrayList[bucketNum];for(int i =0; i < bucketNum; i ++){
buckets[i]=newArrayList<Double>();}double maxValue =Double.MIN_VALUE;double minValue =Double.MAX_VALUE;for(double num : arr){if(num > maxValue) maxValue = num;if(num < minValue) minValue = num;}for(double num : arr){int index =(int)(((num - minValue)*(bucketNum -1))/(maxValue - minValue));
buckets[index].add(num);}for(int i =0; i < arr.length; i ++){Collections.sort(buckets[i]);System.out.println("buckets = "+ buckets[i]);}int index =0;for(int i =0; i < bucketNum; i ++){for(double num : buckets[i]){
arr[index ++]= num;}}}}