/** * @author WanJl * @version 1.0 * @title HomeWork01 * @description 7月16日作业-冒泡排序 * @create 2026/7/17 */ public class HomeWork01 { public static void main(String[] args) { /* 冒泡排序 比较相邻元素的大小,比较大的交换位置 1、一共可能会比较几轮 最多 长度-1轮 2、每轮比较几次 逐次减少,最多 长度-1次 */ int[]arr={29, 10, 14, 37, 13, 33, 48, 22}; // arr.length -1 为什么? 是比较的轮数 for (int i = 0; i < arr.length-1; i++) { boolean b=false; //作为标记 目的就是是记录是否出现提前排完序的情况 for (int j = 0; j < arr.length-1-i; j++) { if (arr[j]>arr[j+1]){ arr[j]= arr[j]+arr[j+1]; arr[j+1]=arr[j]-arr[j+1]; arr[j]= arr[j]-arr[j+1]; b=true; //b=true说明就没排完序 } } //判断 b是否等于false b=false,说明已经排序了,就没有必要再继续循环了。 if (!b){ break; //所以就跳出外层循环,结束了 } } } }