1、插入排序
void doInsertSort(int[] src) { int len=src.length; for(int i=1;i<len;i++) { int j; int temp=src[i]; for(j=i;j>0;j--) { if(src[j-1]>temp) { src[j]=src[j-1]; } else //如果当前的数,不小前面的数,那就说明不小于前面所有的数 { //因为前面已经是排好了序的,所以直接通出当前一轮的比较 break; } } src[j]=temp; printResult(i,src); } }
2、选择排序
void doChooseSort(int[] src) { int len=src.length; int temp; for(int i=0;i<len;i++) { temp=src[i]; int j; int samllestLocation=i;//最小数的下标 for(j=i+1;j<len;j++) { if(src[j]<temp) { temp=src[j];//取出最小值 samllestLocation=j;//取出最小值所在下标 } } src[samllestLocation]=src[i]; src[i]=temp; printResult(i,src); } }
3、冒泡排序
void doBubbleSort(int[] src) { int len=src.length; for(int i=0;i<len;i++) { for(int j=i+1;j<len;j++) { int temp; if(src[i]>src[j]) { temp=src[j]; src[j]=src[i]; src[i]=temp; } } printResult(i,src); } }