插入排序也是最简单的一类排序方法。本节主要简绍众多插入排序方法中最直观的直接插入排序。直接插入排序是指,对序列A的n个元素A【1】~A【n】,令i从2到枚举,进行n-1趟枚举。假设某一趟时,序列A的前i-1个元素A[1]~A[i-1]已经有序,而范围[i,n]还未排序,那么该趟从范围[1,i-1]中寻找某个位置j,使得讲A【i】插入位置j后(此时A【j】~A【i-1】会后移一位至A【j+1】~A【i】),范围[i,j]有序。
public class Insert {
@Test
public void testInsertSort() {
int []a= {15,5,12,24,6};
InsertSort(a) ;
for(int i=0;i<a.length;i++) {
System.out.println(a[i]);
}
}
public void InsertSort(int a[]) {
for(int i=1;i<a.length;i++) {
int temp=a[i];//temp来临时存放A[i],j从i开始往前枚举。
int j=i;
for(;j>1&&temp<a[j-1];j--) {
a[j]=a[j-1];//吧A【j-1】向后移动以为至A[j]
}
a[j]=temp;//插入位置为j
}
}
}