public class Sortman { /** * 冒泡排序 * @param Comparable数组引用 * @param start 其实位置 * @param end 终止位置 */ public void bubbleSrot(Comparable[] a,int start,int end){ for(int i=end;i>start;i--){ for(int j=start+1;j<=i;j++){ if(a[j-1].compareTo(a[j])>0){ Comparable temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } } } } /** * 选择排序 * @param Comparable数组引用 * @param start 其实位置 * @param end 终止位置 */ public void selectionSort(Comparable[] a,int start,int end){ for(int i=start;i <=end;j++){ if(a[j].compareTo(a[p])<0) p=j; } if(p!=i){ Comparable temp=a[i]; a[i]=a[p]; a[p]=temp; } } } /** * 插入排序 * @param Comparable数组引用 * @param start 其实位置 * @param end 终止位置 */ public void insertionSort(Comparable[] a,int start,int end){ for(int i=start+1;i<=end;i++){ Comparable val=a[i]; int j=i; while(j>start&&val.compareTo(a[j-1])<0){ a[j]=a[j-1]; j--; } a[j]=val; } } private int split(int low, int high,Comparable[] a) { Comparable t; t=a[low]; while(low 0&&low <0&&low <=h1&&j<=h2) { if(a[i].compareTo(a[j])<0) { t[k++]=a[i++]; }else { t[k++]=a[j++]; } } while(i<=h1) { t[k++]=a[i++]; } while(j<=h2) t[k++]=a[j++]; for(i=l1,j=0;i<=h2;i++,j++) { a[i]=t[j]; } } /** * 归并排序 * @param Comparable数组引用 * @param start 其实位置 * @param end 终止位置 */ public void mergeSort(Comparable[] a,int low,int high) { int mid=(low+high)/2; if(low //源代码片段来自云代码http://yuncode.net