| 12345678910111213141516171819202122232425262728293031323334 |
- /**
- * @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; //所以就跳出外层循环,结束了
- }
- }
- }
- }
|