Java

Java - 冒泡排序

2018-01-05  本文已影响9人  533e11a308d9

冒泡排序

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
上一篇下一篇

猜你喜欢

热点阅读