• 排序算法之冒泡排序


            static void Main(string[] args)
            {
                int[] array = {90,36,52,23,235,314,131,3,456,34};
                BubbleSort(array);
                Console.ReadLine();
            }
    
             
            /// <summary>
            /// 名称:冒泡排序
            /// 原理:如果有n个数进行排序,需要将n-1个数进行归位,即需要进行n-1趟。而每一趟都需要从第1个数字开始比较,直到最后一位尚未归位的数.
            /// 举例:10个数进行排序,第一趟最小的数会归位到最后一位,即第10位,第二趟将倒数第2位上的数归位,第三趟将倒数第3位上的数归位,依此归推,最后一趟不用再归位,因为第1位已经归好位
            /// 时间复杂度:最坏情况是O(n的平方) 最好情况是O(n)
            /// 优化:增加一个标识变量,当比较序列为{2,1,3,4,5,6,7,8,9,10},只需要进行一次比较即可,时间复杂度为O(n)
            /// </summary>
            /// <param name="array"></param>
            static void BubbleSort(int[] array)
            {
                bool flag = true;
                for (int i = 0; i < array.Length && flag; i++)
                {
                    flag = false;
                    //如果j从0开始则array[j]<array[j+1] j+1会越界
                    for (int j = 1; j < array.Length - i; j++)
                    {
                        Console.WriteLine(string.Format("i={0},j={1}",i,j));
                        if (array[j-1] > array[j])
                        {
                            var t = array[j - 1];
                            array[j - 1] = array[j];
                            array[j] = t;
                            flag = true;
                        }
                    }
                }
                Console.WriteLine("冒泡排序后的结果是:");
                foreach (var item in array)
                {
                    Console.WriteLine(item);
                }
            }
  • 相关阅读:
    hdu2063:过山车
    牛客网:ph试纸
    牛客网:石子阵列
    最短路
    POJ1067:取石子游戏
    实现DataGridView实时更新数据
    SendMessage API
    使用Intel IPT技术保护您的帐号安全
    它是对 ACME(automated certificate management environment) 协议的实现,只要实现了 ACME 协议的客户端都可以跟它交互。
    time out 超时
  • 原文地址:https://www.cnblogs.com/bluecountry/p/5541066.html
Copyright © 2020-2023  润新知