美文网首页Java
Java - 冒泡排序

Java - 冒泡排序

作者: 533e11a308d9 | 来源:发表于2018-01-05 12:34 被阅读9次

    冒泡排序

    package com.code.ggsddu;
    
    import java.util.Arrays;
    import java.util.Random;
    import java.util.Scanner;
    
    public class BubbleSort {
        public static void main(String[] args) {
            System.out.print("输入数组长度:");
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();
            int[] arr = new int[n];
            Random random = new Random();
            for (int i = 0; i < arr.length; i++) {
                arr[i] = random.nextInt(100);
            }
            System.out.println("排序前:" + Arrays.toString(arr));
            System.out.println("--------------------- 排序开始 ---------------------");
            // 外层循环:n个元素,循环n-1次,每次循环得到最值,放到数组末位(最值像泡泡一样冒出去)
            for (int i = 0; i < arr.length - 1; i++) {
                // 内层循环:arr.length-i-1次,对当前无序区间进行排序!
                // j的范围很关键,从j<arr.length-i-1可以看出这个范围是在逐步缩小的
                for (int j = 0; j < arr.length - i - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int temp = arr[j + 1];
                        arr[j + 1] = arr[j];
                        arr[j] = temp;
                    }
                }
                System.out.println("第 " + (i + 1) + " 次排序:" + Arrays.toString(arr));
            }
            System.out.println("--------------------- 排序结束 ---------------------");
            System.out.println("排序后:" + Arrays.toString(arr));
        }
    }
    

     
    控制台打印结果:

    输入数组长度:10
    排序前:[64, 89, 36, 57, 82, 70, 40, 61, 81, 15]
    --------------------- 排序开始 ---------------------
    第 1 次排序:[64, 36, 57, 82, 70, 40, 61, 81, 15, 89]
    第 2 次排序:[36, 57, 64, 70, 40, 61, 81, 15, 82, 89]
    第 3 次排序:[36, 57, 64, 40, 61, 70, 15, 81, 82, 89]
    第 4 次排序:[36, 57, 40, 61, 64, 15, 70, 81, 82, 89]
    第 5 次排序:[36, 40, 57, 61, 15, 64, 70, 81, 82, 89]
    第 6 次排序:[36, 40, 57, 15, 61, 64, 70, 81, 82, 89]
    第 7 次排序:[36, 40, 15, 57, 61, 64, 70, 81, 82, 89]
    第 8 次排序:[36, 15, 40, 57, 61, 64, 70, 81, 82, 89]
    第 9 次排序:[15, 36, 40, 57, 61, 64, 70, 81, 82, 89]
    --------------------- 排序结束 ---------------------
    排序后:[15, 36, 40, 57, 61, 64, 70, 81, 82, 89]
    
    Process finished with exit code 0
    

    相关文章

      网友评论

        本文标题:Java - 冒泡排序

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