zoukankan      html  css  js  c++  java
  • 【狂神说Java学习笔记】阶段一JavaSE基础(九)冒泡排序

    笔记内容:狂神说Java阶段一Java基础视频P58
    狂神说Java视频链接


    目录

    代码
    代码解释
    代码解释图


    代码

    int[] arrays = {4,2,3,1};
    int[] sortArray = sort(arrays);
    System.out.println(Arrays.toString((sortArray)));
    
    public static int[] sort(int[] array) {
            int temp = 0;
            //外层循环:大循环的次数
            for (int i = 0; i < array.length-1; i++) {
                //内层循环:数与数之间的比较次数
                for (int j = 0; j < array.length-1-i; j++) {
                    if ( array[j] > array[j+1] ) {
                        temp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = temp;
                    }
                }
            }
            return array;
        }
    

    代码解释:

    外层最多循环三次,最小的数就一定能循环到排序位置的首位。

    同理,内层只用依次循环3、2、1次,最大的数就一定能排到排序位置的最高位,因此下一次循环就没必要再循环最后一个数和倒数第二个数,所以每次数与数之间比较的次数要减少1(j的array.length-1-i就是这个作用,因为i每次增加1,相当于j每次都多减了1,即每次数与数之间的比较的次数就减少了1),即并不是每次都完全把所有的数便利了一遍。

    代码解释图:

  • 相关阅读:
    名字匹配(水题)
    奇怪的键盘
    杰杰的键盘
    Windows Message Queue(优先队列)
    筛法求素数
    会场安排问题(贪心)
    Sail
    Elevator
    Lowest Bit
    File Searching
  • 原文地址:https://www.cnblogs.com/lanlynn/p/13475694.html
Copyright © 2011-2022 走看看