import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Sort{ public static void main(String[] args) { int[] a = {6,2,5,7,3,0,15,-12,13,13,6,2}; int[] b = quickSort(a); for(int i=0;i<b.length;i++){ System.out.println(b[i]); } } public static int[] mergeSort(int[] a){ int splitLen = a.length / 2; if(a.length == 1){ return a; } int[] begin = Arrays.copyOfRange(a,0,splitLen); int[] end = Arrays.copyOfRange(a,splitLen,a.length); int[] result = merge(mergeSort(begin),mergeSort(end)); return result; } private static int[] merge(int[] left,int[] right){ if(right==null){ return left; } if(left==null){ return right; } int[] result = new int[left.length+right.length]; int leftIndex = 0; int rightIndex = 0; for(int i=0;i<result.length;i++){ if(leftIndex == left.length){ result[i] = right[rightIndex]; rightIndex++; continue; } if(rightIndex == right.length){ result[i] = left[leftIndex]; leftIndex++; continue; } if(left[leftIndex]>=right[rightIndex]){ result[i] = right[rightIndex]; rightIndex++; continue; } if(left[leftIndex]<=right[rightIndex]){ result[i] = left[leftIndex]; leftIndex++; continue; } } return result; } public static void shellSort(int[] a){ int finishFlag = 3; int createLen = (a.length/2 + 1); while (createLen > 0 && finishFlag>0){ int i=0; while ((i + createLen + 1)<=a.length){ int begin = a[i]; int end = a[i+createLen]; int tmp = begin; if(end < begin){ a[i]=end; a[i+createLen]=tmp; } i++; } if(createLen<=3){ finishFlag--; } createLen = (createLen/2 + 1); if(finishFlag==1){ createLen=1; } } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } } public static void insertionSort(int[] a){ for(int j=0;j<a.length-1;j++){ int value = a[j+1]; for(int i=j;i>=0;i--){ if(value>=a[i]){ continue; } int tmp = a[i]; a[i] = value; a[i+1] = tmp; } } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } } public static void selectionSort(int[] a){ for(int j=0;j<a.length-1;j++){ int tmpMin = a[j]; int tmpMinIndex = j; for(int i=j;i<a.length;i++){ if(a[i] < tmpMin){ tmpMin = a[i]; tmpMinIndex = i; } } int tmp = a[j]; a[j] = tmpMin; a[tmpMinIndex] = tmp; } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } } public static void bubbleSort(int[] a){ for(int j=0;j<a.length-1;j++){ for(int i=0;i<a.length-j-1;i++){ if(a[i] > a[i+1]){ int tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; } } } for(int i=0;i<a.length;i++){ System.out.println(a[i]); } } }
十大排序
最新推荐文章于 2021-08-25 10:15:02 发布