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


     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”;
  • 相关阅读:
    DBC的故事
    MDF,了解一下
    PAT A 1059 Prime Factors (25分)
    素数的判断与素数表的获取
    PAT A 1014 Waiting in Line (30分)
    n皇后问题(全排列+回溯)
    最长回文子串(c++)
    传输方式的分类
    OSI模型概述
    进制转换
  • 原文地址:https://www.cnblogs.com/workhai/p/6230356.html
Copyright © 2020-2023  润新知