[游戏开发-学习笔记]菜鸟慢慢飞(六)- 冒泡排序

本文详细介绍了冒泡排序算法的工作原理及实现过程。通过逐步解析内外循环的作用,解释了如何通过比较和交换操作来将数组中的元素按升序排列。特别强调了每次外循环后最大元素都会被放置在其正确位置的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1         /// <summary>
 2         /// 冒泡排序算法
 3         /// </summary>
 4         /// <param name="array"></param>
 5         public static void sort(int[] arr)
 6         {
 7             int temp = 0;
 8             for (int i = 0; i < arr.Length - 1; i++)
 9             {
10                 for (int j = 0; j < arr.Length - 1 - i; j++)
11                 {
12                     if (arr[j] > arr[j + 1])
13                     {
14                         temp = arr[j + 1];
15                         arr[j + 1] = arr[j];
16                         arr[j] = temp;
17                     }
18                 }
19             }
20         }

小记:

    • i < arr.Length - 1,外循环,最后一次比较:最后一位数(没动过)VS 倒数第二位数(可能是交换过的);最后一位数比较完毕了,所以循环次数为 “arr.Length - 1”;
    • j < arr.Length - 1 - i,内循环,
      • 第一次循环(i=0),比只较到末尾的一对,所以循环次数要“arr.Length - 1 ”
      • 第二次循环(i=1),末尾的一对已经比较过了,不需要再比较,我们比较到倒数第二组为止,所以j的循环次数要“arr.Length - 1-1”
      • 第三次循环(i=2),末尾的两对已经比较过了,我们比较到倒数第三组为止,所以j的循环次数要“arr.Length - 1-2”
      • 类推得出“ j < arr.Length - 1 - i”;

转载于:https://www.cnblogs.com/workhai/p/6230356.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值