基本思路:
在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
代码部分:
//直接插入排序
public class insetSort {
public static void main(String[] args){
int a[]={3,10,6,45,7,62,2,44,1};
int n=a.length;
int temp;
for(int i=1;i<n;i++){ //排序的次数(n-1次)
temp=a[i]; //每一次让a[i]数组赋值到temp容器里面
int j=i-1;
for(;j>=0&&a[j]>temp;j--){ //每次判断左边的数据是否大于右边的数据,大就把左边的数据赋值到右边去
a[j+1]=a[j]; //将大于temp的值整体向后移一个单位
}
a[j+1]=temp; //把temp的数据插入到最前面的位置
}
for(int z=0;z<n;z++){
System.out.println(a[z]);
}
}
}