HomeWork01.java 1.2 KB

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