冒泡排序

解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从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         }

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

时间复杂度:冒泡排序

上一篇:[LeetCode] 23. Merge k Sorted Lists(合并 k 个有序链表)


下一篇:python 使用 sorted 对 列表嵌套元组的数据进行排序