/**
*
* @author Administrator
* 插入排序原理:对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列;
* 接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,
* 直至最后一个记录插入到有序序列中为止;
*从原数组第2个元素开始,遍历数组,依次把遍历到的元素按照一定的顺序插入到当前元素的小数组中(自己总结)
*排序过程是一个挖坑填坑的过程
*/
public class InsertSort {
public static void printArray(int a[]){
for(int i=0;i<a.length;i++)
System.out.print(a[i]);
}
public static void insertSort(int a[]){
int n = a.length;
int temp =0;
for(int i=1;i<n;i++){
int j=i;
temp = a[j];
while(j>=1&&a[j-1]>temp){ //原子数组中的元素后移,注意边界条件。这是一个挖坑的过程
a[j] = a[j-1];
j--;
}
a[j]=temp; //填坑
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] ={5,4,3,2,1};
insertSort(a);
printArray(a);
}
}
运行结果:
12345