Java冒泡排序

 package com.q.buffer;

import java.lang.reflect.Array;
import java.util.Arrays;

/*
* 冒泡排序
* */
public class Buffer1 {
    public int[] bufferSort(int[] array){
        //中间转换者
        int temp = 0;
        //冒泡排序分为两个部分:外层循环和内层循环
        /*
        * 外层循环 需要执行  array.length-1
        * */
        for (int i = 0; i < array.length-1; i++) {
            boolean flag = false;
            System.out.println(Arrays.toString(array));

            for (int j = 0; j < array.length-1; j++) {
                if (array[j + 1] > array[j]) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    flag = true;
                }
                System.out.println("第"+i+"."+j+"次比较"+ Arrays.toString(array));
            }
            if(!flag){
                break;
            }
            System.out.println("第"+i+"次比较"+ Arrays.toString(array));
        }


        return array;
    }
    public static void main(String[] args) {
        Buffer1 bubble = new Buffer1();
        int[] array = {2,5,1,6,4,9,8,5,3,1,2,0};
        int[] sort = bubble.bufferSort(array);
        for (int num:sort){
            System.out.print(num+"\t");
        }
    }
}

结果:

[2, 5, 1, 6, 4, 9, 8, 5, 3, 1, 2, 0]
第0.0次比较[5, 2, 1, 6, 4, 9, 8, 5, 3, 1, 2, 0]
第0.1次比较[5, 2, 1, 6, 4, 9, 8, 5, 3, 1, 2, 0]
第0.2次比较[5, 2, 6, 1, 4, 9, 8, 5, 3, 1, 2, 0]
第0.3次比较[5, 2, 6, 4, 1, 9, 8, 5, 3, 1, 2, 0]
第0.4次比较[5, 2, 6, 4, 9, 1, 8, 5, 3, 1, 2, 0]
第0.5次比较[5, 2, 6, 4, 9, 8, 1, 5, 3, 1, 2, 0]
第0.6次比较[5, 2, 6, 4, 9, 8, 5, 1, 3, 1, 2, 0]
第0.7次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 1, 2, 0]
第0.8次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 1, 2, 0]
第0.9次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 2, 1, 0]
第0.10次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 2, 1, 0]
第0次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 2, 1, 0]
[5, 2, 6, 4, 9, 8, 5, 3, 1, 2, 1, 0]
第1.0次比较[5, 2, 6, 4, 9, 8, 5, 3, 1, 2, 1, 0]
第1.1次比较[5, 6, 2, 4, 9, 8, 5, 3, 1, 2, 1, 0]
第1.2次比较[5, 6, 4, 2, 9, 8, 5, 3, 1, 2, 1, 0]
第1.3次比较[5, 6, 4, 9, 2, 8, 5, 3, 1, 2, 1, 0]
第1.4次比较[5, 6, 4, 9, 8, 2, 5, 3, 1, 2, 1, 0]
第1.5次比较[5, 6, 4, 9, 8, 5, 2, 3, 1, 2, 1, 0]
第1.6次比较[5, 6, 4, 9, 8, 5, 3, 2, 1, 2, 1, 0]
第1.7次比较[5, 6, 4, 9, 8, 5, 3, 2, 1, 2, 1, 0]
第1.8次比较[5, 6, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第1.9次比较[5, 6, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第1.10次比较[5, 6, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第1次比较[5, 6, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
[5, 6, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第2.0次比较[6, 5, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第2.1次比较[6, 5, 4, 9, 8, 5, 3, 2, 2, 1, 1, 0]
第2.2次比较[6, 5, 9, 4, 8, 5, 3, 2, 2, 1, 1, 0]
第2.3次比较[6, 5, 9, 8, 4, 5, 3, 2, 2, 1, 1, 0]
第2.4次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.5次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.6次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.7次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.8次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.9次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2.10次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第2次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第3.0次比较[6, 5, 9, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第3.1次比较[6, 9, 5, 8, 5, 4, 3, 2, 2, 1, 1, 0]
第3.2次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.3次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.4次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.5次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.6次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.7次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.8次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.9次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3.10次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第3次比较[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
[6, 9, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.0次比较[9, 6, 8, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.1次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.2次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.3次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.4次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.5次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.6次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.7次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.8次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.9次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4.10次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第4次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.0次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.1次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.2次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.3次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.4次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.5次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.6次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.7次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.8次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.9次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
第5.10次比较[9, 8, 6, 5, 5, 4, 3, 2, 2, 1, 1, 0]
9	8	6	5	5	4	3	2	2	1	1	0	
Process finished with exit code 0

上一篇:JAVA 数组 二维数组


下一篇:JDK1.8源码(四)——java.util.Arrays类