package com.test;
public class BubbleSort {
public static void main(String[] args) {
int numbers[] = { 3, 7, 5, 1, 67, 9, 2, 34, 12, 45 };
bubbleSort1(numbers);
}
//=====冒泡排序=====
//从左向右,每两个相邻的数比较大小,如果左边比右边的数大,两个数交换位置
// 3 7 5 1 67 9 2 34 12 45 (原始数组)
// 3 5 1 7 9 2 34 12 45 67 第1次循环后
// 3 1 5 7 2 9 12 34 45 67 第2次循环后
// 1 3 5 2 7 9 12 34 45 67 第3次循环后
// 1 3 2 5 7 9 12 34 45 67 第4次循环后
// 1 2 3 5 7 9 12 34 45 67 第5次循环后
// 1 2 3 5 7 9 12 34 45 67 第6次循环后
// 1 2 3 5 7 9 12 34 45 67 第7次循环后
// 1 2 3 5 7 9 12 34 45 67 第8次循环后
// 1 2 3 5 7 9 12 34 45 67 第9次循环后
private static void bubbleSort1(int[] numbers) {
int size = numbers.length;
for (int i = 0; i < size - 1; i++) {
//外层循环控制循环次数,数组长度为10,循环9次即可.
//第1次循环9个数比较大小,即第1个数到第9个数分别与自己右边的数比较
//第2次循环8个数比较大小,即第1个数到第8个数分别与自己右边的数比较(因为第1次循环找到最大的数放在最后,所以第2次循环不用再跟最后一个数比较)
//依次类推
for (int j = 0; j < size - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
//两个数交换位置
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
}
}