java面试题——基础算法入门05《直接插入》

插入排序也是最简单的一类排序方法。本节主要简绍众多插入排序方法中最直观的直接插入排序。直接插入排序是指,对序列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
        }
    }
    
}

猜你喜欢

转载自blog.csdn.net/ZSS1753936255/article/details/81708971