基本原理:
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 }