具体解释看:
插入排序总结
自己写的Java代码:
/**
* 插入排序思想:从第二个数开始不断向前比较,如果小于前一个数,且大于前前一个数,则将前一个数与当前数交换
* 这里的实现思路是,从当前数开始向前比较,每次连续满足小于前一个数时,将前一个数后移到当前位置,将所有大于当前数的
* 值全部后移,直到找到插入位置。
*/
public static void insertSort(int []arr) {
int length=arr.length;
int j,temp;
for(int i=1;i<length;i++) {
temp=arr[i];//临时保存当前数
for(j=i;j>0&&temp<arr[j-1];j--) {
//注意循环结束的条件是j<=0或者找到一个数不满足当前数小于它
arr[j]=arr[j-1];//否则后移
}
arr[j]=temp;//找到插入位置
}
}