基本思想
按大小,从第二个数字开始,将数字向插入到合适的位置
个人理解其核心思想就是这样
然而如何将后面的数字插入到合适位置的方法多种多样
实现及代码
实现一
将要移动位置的数字保存,将前面的数字后移,最后插入
static int[] insertsort(int[] array){
int length = array.length;
int tem;
int j;
for (int i = 1; i < length; i++) {
tem=array[i];
for (j = i-1; j >= 0 && tem<array[j]; j--) {
array[j+1]= array[j];
}
array[j+1]=tem;
}
return array;
}
实现二
将要移动的数字,与前面数字不断比较交换,从而实现插入的效果
static int[] insertsort(int[] array){
int length= array.length;
for (int i = 1; i < length; i++) {
for (int j = i-1; j >=0 &&array[j+1]<array[j]; j--) {
//交换位置
swag(array,j+1,j);
}
}
return array;
}