一、思路
(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
(2)这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉” 到数组第N-1 个位置。
(3) N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。
二、代码
public class BubbleSortTest {public static void main(String[] args) {int[] array = {1, 8, 3, 9, 7, 6, 5, 2, 4};System.out.println(Arrays.toString(bubbleSort(array)));}public static int[] bubbleSort(int[] array) {for (int i = 0; i < array.length; i++) {for (int j = 1; j < (array.length - i); j++) {//1int number = array[j - 1];//8int right = array[j];//比较1和8if (number > right) {array[j] = number;array[j - 1] = right;}}System.out.println("第" + i + "大轮排序的结果为:" + Arrays.toString(array));}return array;}}
输出结果:
第0大轮排序的结果为:[1, 3, 8, 7, 6, 5, 2, 4, 9]
第1大轮排序的结果为:[1, 3, 7, 6, 5, 2, 4, 8, 9]
第2大轮排序的结果为:[1, 3, 6, 5, 2, 4, 7, 8, 9]
第3大轮排序的结果为:[1, 3, 5, 2, 4, 6, 7, 8, 9]
第4大轮排序的结果为:[1, 3, 2, 4, 5, 6, 7, 8, 9]
第5大轮排序的结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]
第6大轮排序的结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]
第7大轮排序的结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]
第8大轮排序的结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]