美文网首页
插入排序demon

插入排序demon

作者: 良人与我 | 来源:发表于2019-01-15 12:40 被阅读8次

插入排序demon

public class InsertSortDemon {
    //从前往后找
    public static void sort(List<Integer> numbers){
        /**
         * 将数组看为 有序的部分和无序的区间
         * 将无序的区间插入到有序的区间
         * 起始时候 有序区间是第一个数据
         */
        for (int i = 1; i < numbers.size(); i++) {
            for (int j = 0; j < i; j++) {
                int tmp = numbers.get(i);
                if(tmp < numbers.get(j)){
                    numbers.remove(i);
                    numbers.add(j,tmp);
                    break;
                }
            }
        }
    }

    //从后往前找
    public static void sort2(List<Integer> numbers){
        /**
         * 将数组看为 有序的部分和无序的区间
         * 将无序的区间插入到有序的区间
         * 起始时候 有序区间是第一个数据
         */
        for (int i = 1; i < numbers.size(); i++) {
            int j = i - 1;
            int tmp = numbers.get(i);
            for (; j >= 0; j--) {
                if(tmp > numbers.get(j)){
                    break;
                }
            }
            if(j + 1!= i){
                Integer value = numbers.remove(i);
                numbers.add(j+1,value);
            }
        }
    }

    public static void main(String[] args) {
        List<Integer> nums = Lists.newArrayList(1,2,4,6,8,3,5,9,7);
        InsertSortDemon.sort(nums);
        System.out.println(nums);
    }
}

运行结果

[1, 2, 3, 4, 5, 6, 7, 8, 9]

可以看出 插入排序是
原地排序
不需要二外的存储空间,空间复杂度是o(1)
是稳定的排序算法
最好时间复杂度 o(n)
最坏时间复杂度 O(n^2)
平均时间复杂度 O(n^2)

相关文章

  • 插入排序demon

    插入排序demon 运行结果 [1, 2, 3, 4, 5, 6, 7, 8, 9] 可以看出 插入排序是原地排序...

  • Demon

    我不是什么好人。 我笑,回他。 我知道啊,一早就知道了。 五千年前伊索大闹一场,他的恶名在六界被传得沸沸扬扬。 你...

  • Demon

    人这一种落后于时代的生物 若不使用他们消化系统就会变得饥肠辘辘 拒绝以爱之名的肉体欢愉竟郁郁而终 这宿主愚蠢得难得...

  • 快排code demon

    快速排序demon

  • LIKE A Demon

    LIKE A Demon 翘课却也学到东西,大学真是不痛不痒。 上课只是为了通过,叹近日才晓自学强。 月月目标需定...

  • Demon手札

    我像是个孤独的旅人 漫无目的,四处漂泊 看着车上的人们人来人往 他们都有亲友相伴 没有我孑然一身,似傲似悲 看着霓...

  • My Demon

    ——如果我沦为恶魔,请救救我 在漆黑的小房间里,阿锌紧紧的包裹着被单哭泣着。他一直是一个孤僻的人,他已经习惯了孤独...

  • Demon随笔

    你在意什么,什么就会折磨你。 感情不必拿来慷慨,深情何须用来显摆。 路还很长,不要忘记善良。 我的成熟都是假正经,...

  • Python_0基础:7.流程控制语句

    一、if if语句是用来进行判断的,其使用格式如下: demon_1 demon_2 小总结: if判断语句的作用...

  • 美国教育测验服务中心(ETS)主持着中国人熟悉的“托福”、“托业

    Introducing the HEIghten® Outcomes Assessment Suite Demon...

网友评论

      本文标题:插入排序demon

      本文链接:https://www.haomeiwen.com/subject/tqzedqtx.html