百度百科:
https://baike.baidu.com/item/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F/4602306?fr=aladdin
思路:
代码:
package com.afmobi;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {0,-1,3,-5,9,8};
BubbleSort.bubbleSort(arr);
}
public static void bubbleSort(int[] arr) {
int temp = 0;
// 优化的部分 如果某趟循环一次都没换,那说明已经排好序了
boolean flag = false;
for (int i = 0; i < arr.length - 1; i++) { // 5个数,只要4轮比较
for (int j = 0; j < arr.length - 1 - i; j++) { // 每次比较完一轮,就可以少比一个数
if (arr[j] > arr[j + 1]) { // 从小到大
flag = true;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
if (!flag) { //说明这次没换过
break;
}else {
flag = false; // 如果有换过,应该把flag重置
}
}
System.out.println(Arrays.toString(arr));
}
}
测试结果: