Don’t say much, just go to the code.
package org.bood.sort;
/**
* 冒泡排序
*
* <p>
* 原理:比较两个相邻的元素,将值大的元素交换至右端。
* 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。
* 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
* 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。
* 重复第一趟步骤,直至全部排序完成。
* </p>
*
* @author bood
* @since 2022/01/06
*/
public class BubbleSort {
private static void bubbleSort(int[] data) {
// 外层循环控制排序趟数
for (int i = data.length - 1; i > 0; i--) {
// 内层循环控制每一趟排序多少次
for (int j = 0; j < i; j++) {
// 数据交换
if (data[j] > data[j + 1]) {
// 交换
int temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
// 初始化数据
int[] data = {3, 2, 5, 8, 7, 2, 9, 1};
// 排序前
System.out.println("排序前:");
for (int d : data) {
System.out.println(d);
}
bubbleSort(data);
// 排序后
System.out.println("排序后:");
for (int d : data) {
System.out.println(d);
}
}
}