weiliuhong1(
网学)贡献
public class ArraySort { /** * 冒泡排序 * @param a 要排序的数组 */ public static void bubbleSort(int []a){ for(int i=a.length-1;i>0;i--){ for(int j=1;j<=i;j++){ if(a[j-1]>a[j]){ swap(a,j-1,j); } } } } /** * 选择排序 * @param a 要排序的数组 */ public static void selectSort(int []a){ for(int i=a.length-1;i>0;i--){ int temp=0; for(int j=1;j<=i;j++){ if(a[j]>a[temp]){ temp=j; } } swap(a,i,temp); } } /** * 插入排序 * @param a 要排序的数组 */ public static void insertSort(int []a){ for(int i=1;i0&;&;a[j-1]>temp;j--){ a[j]=a[j-1]; } a[j]=temp; } } /** * shell排序 * @param a 要排序的数组 */ public static void shellSort(int []a){ int d=1; int j; int n=a.length;
while(9*d
0){ for(int i=d;i=d&;&;a[j-d]>temp){ a[j]=a[j-d]; j-=d; } a[j]=temp; } d/=3; } } /** * 归并排序 * @param a 要排序的数组 */ public static void mergeSort(int a[]){ if(a.length>1){ mergeSort(a,0,a.length); } }
private static void mergeSort(int[] a, int k, int n) { if(n<2){ return; } mergeSort(a,k,n/2); mergeSort(a,k+n/2,n-n/2); merge(a,k,n); } private static void merge(int[] a, int k, int n) { int[]temp=new int[n]; int i=0,lo=k,hi=k+n/2; while(lo /** * 快速排序 * @param a 要排序的数组 */ public static void quickSort(int a[]){ if(a.length>1){ quickSort(a,0,a.length); } } private static void quickSort(int[] a, int k, int n) { if(n<2){ return; } int pivot=a[k]; int i=k; int j=k+n; while(i pivot); if(i private static void swap(int[] a, int i, int j) { if(i==j){ return ; } int temp=a[j]; a[j]=a[i]; a[i]=temp; } @SuppressWarnings("unused") private static void print(int[] a){ if(a!=null){ for(int i=0;i // // // //
selectSort(a); insertSort(a); shellSort(a); mergeSort(a); quickSort(a); print(a); }
}
本TXT由“文库宝”下载:mozhua.net/wenkubao