冒泡排序

基本原理:

1、比喻冒泡其实非常形象,从第一个数字开始,循环与后面的数字比较,得到最大值。最大值飞升,不再参与比较。

2、循环第一步的操作,不停的冒泡得到最大值。

3、有一种情况是,循环一轮发现没有任何交换位置的情况,则说明排序完成,执行退出循环操作。

图解:

具体实现代码:

 1         private static void Sort()
 2         {
 3             int[] LiArray = new int[] { 3, 5, 7, 9 };
 4 
 5 
 6             bool endFlag = true;
 7             for (int j = 0; j < LiArray.Length; j++)
 8             {
 9                 //-j:每次循环完一轮,最后的数字晋级飞升了。
10                 for (int i = 0; i < LiArray.Length - j - 1; i++)
11                 {
12                     if (LiArray[i] > LiArray[i + 1])
13                     {
14                         Swap(LiArray, i, i + 1);
15                         endFlag = false;
16                     }
17                 }
18                 
19                 //一轮比较完,没有执行任何交换的情况下,说明排序已经完成。
20                 if (endFlag) 
21                 {
22                     break;
23                 }
24             }
25         }
View Code
原文地址:https://www.cnblogs.com/gongjin/p/9166852.html