美文网首页
排序复习

排序复习

作者: Kean_L_C | 来源:发表于2019-05-31 12:12 被阅读0次

掘金

冒泡排序

算法负责度为O(n^2)

    @Test
    public void bubbleMin() {
        int[] numsInt = {1, 0, -2, 9, 8};
        logger.info("原始数据: {}", numsInt);
        for (int index = 0; index < numsInt.length - 1; index++) {
            for (int jndex = numsInt.length - 1; jndex > index; jndex--) {
                if (numsInt[jndex] < numsInt[jndex - 1]) {
                    // 临近比较:遍历将最小放在前面
                    int tmp = numsInt[jndex];
                    numsInt[jndex] = numsInt[jndex - 1];
                    numsInt[jndex - 1] = tmp;
                }
            }
            logger.info("{}: {}", index, numsInt);
        }
    }
print:
2019-05-31 12:05:04-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:156:(0)]-原始数据: [1, 0, -2, 9, 8]
2019-05-31 12:05:04-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:166:(0)]-0: [-2, 1, 0, 8, 9]
2019-05-31 12:05:04-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:166:(0)]-1: [-2, 0, 1, 8, 9]
2019-05-31 12:05:04-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:166:(0)]-2: [-2, 0, 1, 8, 9]
2019-05-31 12:05:04-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:166:(0)]-3: [-2, 0, 1, 8, 9]

    @Test
    public void bubbleMax() {
        int[] numsInt = {1, 0, -2, 9, 8};
        logger.info("原始数据: {}", numsInt);
        for (int index = numsInt.length - 1; index >= 0 ; index--) {
            for (int jndex = 0; jndex < index; jndex++) {
                if (numsInt[jndex] > numsInt[jndex + 1]) {
                    // 临近比较:遍历将最大放在后面
                    int tmp = numsInt[jndex];
                    numsInt[jndex] = numsInt[jndex + 1];
                    numsInt[jndex + 1] = tmp;
                }
            }
            logger.info("{}: {}", index, numsInt);
        }
    }
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:173:(0)]-原始数据: [1, 0, -2, 9, 8]
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:183:(0)]-4: [0, -2, 1, 8, 9]
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:183:(0)]-3: [-2, 0, 1, 8, 9]
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:183:(0)]-2: [-2, 0, 1, 8, 9]
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:183:(0)]-1: [-2, 0, 1, 8, 9]
2019-05-31 12:11:29-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:183:(0)]-0: [-2, 0, 1, 8, 9]

插入排序

 @Test
    public void insert() {
        // 利用list插入特性
        int[] numsInt = {1, 0, -2, 9, 8};
        List<Integer> numsList = new ArrayList<>();
        logger.info("原始数据: {}", numsInt);
        numsList.add(numsInt[0]);
        for (int index = 1; index < numsInt.length; index++) {
            for (int jndex = 0; jndex < numsList.size(); ++jndex) {
                if (numsList.get(jndex) > numsInt[index]) {
                    // 找到比自身大的位置插入
                    numsList.add(jndex, numsInt[index]);
                    break;
                }
                if (jndex == numsList.size() - 1) {
                    // 尾部插入
                    numsList.add(numsList.size(), numsInt[index]);
                    break;
                }
            }
            logger.info("{}: {}", index, numsList);
        }
    }
2019-05-31 16:23:48-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:192:(0)]-原始数据: [1, 0, -2, 9, 8]
2019-05-31 16:23:48-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:206:(0)]-1: [0, 1]
2019-05-31 16:23:48-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:206:(0)]-2: [-2, 0, 1]
2019-05-31 16:23:48-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:206:(0)]-3: [-2, 0, 1, 9]
2019-05-31 16:23:48-[INFO  ]-[main:0 ]-[com.cscs.RegexTest:206:(0)]-4: [-2, 0, 1, 8, 9]

相关文章

  • 2.4.2 查找和排序

    排序 复习1:冒泡排序 复习2:快速排序 查找 1)顺序查找2)二分查找 3)哈希表查找4)二叉排序树查找

  • 排序复习

    掘金 冒泡排序 算法负责度为O(n^2) 插入排序

  • 2017-09-05学习记录1

    今天复习了五个排序,分别是冒泡排序,选择排序,插入排序,哈希排序和快速排序; 然后看了thinking in ja...

  • 基数排序

    描述 1.桶排序复习

  • 2018-09-23

    今天就来复习一下排序吧 冒泡虽然可以排序,但在处理大量数据时,就会显得乏力,今天就来复习一下快速排序吧 def...

  • 排序第二记——插入排序(插入、Shell排序)

    这次直入主题,我今天要复习的是插入排序!插入排序分为“直接插入”和“Shell排序”,Shell排序就是希尔排序,...

  • 复习排序技术

    彼岸焦点分享第71天(2018.9.8) 排序技术无论在咨询中,或是个人生活学习中,是很实用的。 人在...

  • C实现排序算法

    排序是算法中的重要内容,通过复习排序可以对算法的基本思路和分析方法进行把握。利用c复习排序算法还可以同时复盘c的内...

  • 2018 360面试

    今天又是复习了一天的东西,感觉收获满满,回忆一下: 1.几种排序算法: 快速排序 希尔排序 冒泡排序 选择排序 插...

  • java-四种排序算法

    复习java基础的时候,顺手写的。代码比较丑……1、直接插入排序 2、希尔排序 3、简单选择排序 4、堆排序

网友评论

      本文标题:排序复习

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