冒牌排序概念 |
排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。
原理 |
原理
比較相鄰的元素,把較大的元素放到前面,以此類推直至一行結束,由上述得到新的一行,再依據新的一行進行比較,因為第二行是在原行比較的基礎上進行的,是以二行靠後的數字(在第一行中比下來的)可以省去比較的步驟。以此類推到無元素需要比較。
圖形示意
例如我們将1、2、3、4、5進行冒泡處理(采用有小到大)

解釋圖形
已知原有為1、2、3、4、5。在原值的基礎上開始比較。也就是拿1進行比較。
1與2比2打,是以把二放在前面,1與3比3大,故再次交換位置,一次類推得到第二行(第一次比較,一共比較四次)
這個時候還是可以繼續比較的,故我們在二行的基礎上繼續,2與3比,3大交換位置,以此類推得到第三行(第二次比較,比較三次)後續以此類推至到無可比。
代碼 |
//i:比數 j:比較輪數
int[] nums = new int[] { 1, 2, 3, 4, 5, 6 };
int temp = 0;
for (int j=0;j<nums.Length-1;j++)
{
for (int i=0;i<nums.Length-1-j;i++)
{
if (nums[i]>nums[i+1])//實作循環比較
{
temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for (int i = 0;i < nums.Length;i++ )
{
Console.WriteLine(nums[i]+"\t");
}
Console.ReadKey();