思想:基于前面有序,对后边的元素进行插入的方法。
代码
package com.xpn.sort;
public class InsertSort {
/**
* @param args
*/
public static void main(String[] args) {
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
insertSort(a);
for (int i : a) {
System.out.print(i+" ");
}
}
public static void insertSort(int[] a){
int len=a.length;
for(int i=1;i<len;i++){//要插入的数值
int tmp=a[i];
for(int j=0;j<i;j++){//i前面是已经排好序的元素
if(tmp<a[j]){//将i的元素插入到j的前面
for(int k=i;k>j;k--){//移动比tmp大的元素
a[k]=a[k-1];
}
a[j]=tmp;
break;
}
}
}
}
}