【狂神说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),即并不是每次都完全把所有的数便利了一遍。

代码解释图:

posted @ 2020-08-11 15:05  林兰  阅读(204)  评论(0编辑  收藏  举报