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