zoukankan      html  css  js  c++  java
  • 冒泡排序

    解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

    代码:

     1 static void Bubblesort2A(int[] a, int n)
     2         {
     3             int s = 0,t=0;
     4             bool sorted = false;
     5             while (!sorted)
     6             {
     7                 sorted = true;
     8                 for (int i = 1; i < n; i++)
     9                 {
    10                     if (a[i - 1] > a[i])
    11                     {
    12                         t = a[i];
    13                         a[i] = a[i - 1];
    14                         a[i - 1] = t;
    15                         sorted = false;
    16                     }
    17                     s += 1;
    18                 }
    19                 n--;
    20             }
    21             foreach (var item in a)
    22             {
    23                 Console.WriteLine(item);
    24             }
    25             Console.WriteLine(s);
    26         }

    理解:每次循环交换大小顺序,后一个和前一个比较,这样子每次循环完后面大的数字已经是正常的排序了,下次排序次数就可以减一,直至没有需要排序的数据了。

    时间复杂度:

  • 相关阅读:
    luogu4781
    luogu 4933
    luogu p1726
    bzoj2238
    luogu 1462 通往奥格瑞玛的道路
    noip.ac 3276 矩阵
    luogu1144
    noip.ac 3248
    奶牛比赛
    小P的Civilization V
  • 原文地址:https://www.cnblogs.com/dx5800/p/13193058.html
Copyright © 2011-2022 走看看