插入排序

时间:2020-07-19 23:25:54   收藏:0   阅读:64

插入排序(Insertion sort)

  1. 插入排序原理
    ? ? ? 插入排序原理:插入排序的原理类似于平时打扑克牌进行排序时的原理
  1. 插入排序代码
public class InsertionSort {
    private static boolean greater(Comparable v, Comparable w){
        return v.compareTo(w)>0;
    }

    private static void exch(Comparable[] a,int i,int j){
        Comparable temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }

    public static void sort(Comparable[] a){
        for (int i =1;i<a.length;i++){
            for (int j = i;j>0;j--){
                //比较索引j处的值和j-1处的值,如果索引j-1处的值比j的值大则交换位置
                // 如果不大则已经找到合适的位置,结束循环
                if (greater(a[j-1],a[j])){
                    exch(a,j-1,j);
                }else {
                    break;
                }
            }
        }
    }
}

  1. 插入排序的时间复杂度和稳定性
    时间复杂度为:O(n2)
    稳定性:插入排序时稳定算法
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!