插入排序

将其余所有元素在插入之前都像右移动一位。

插入排序对于实际应用中常见的某些类型的非随机数组很有效,插入排序能够立即发现每个元素都已经在合适的位置之上,他的运行时间是线性的

public class Insertion{

    public static void sort(Comparable[] a){

        int N = a.length;

        for(int i = 1;i<N;i++){

            for(int i = 1;j>0 && less(a[j] , a[j-1]);j--){

                exch(a,j,j-1);

            }

        }

    }

    

    private static boolean less (Comparable v,Comparable w){

         return v.compareTo(w) < 0;

    }

    public static boolean exch (Comparable[] a ,int i;int j){

        Comparable t = a[i];

        a[i] = a[j];

        a[j] = t;

    }

}

你可能感兴趣的:(插入排序)