氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。
它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。
這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名。
氣泡排序演算法的運作如下:
1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後乙個。
4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
下面以一組陣列為例:5,4,3,2,1
排列如下:
第一次:
4,5,3,2,1,
4,3,5,2,1
4,3,2,5,1
4,3,2,1,5 交換4次
第二次:
3,4,2,1,5
3,2,4,1,5
3,2,1,4,5 交換3次
第三次:
2,3,1,4,5
2,1,3,4,5 交換2次
第四次:
1,2,3,4,5 交換1次
由此可見:總計排序4(length-1)次,每次排序交換(length-次數-1)。氣泡排序是c#語言雙層迴圈交換變數的乙個事例,通過外層迴圈控制迴圈次數,即保證每個元素都進行一次相鄰元素的交換,內層迴圈從第乙個元素開始控制相鄰元素的比較與交換,最終達到整體的比較。
下面通過c#**通過接受使用者輸入的數字進行排序:
1static
void main(string
args)210
11//
正序排列:
12for (int i = 0; i < myintarray.length - 1; i++)//
外層迴圈控制迴圈次數
1323}24
}25 console.writeline("
正序序排列為:");
26foreach (int outint in
myintarray)
2730
console.writeline();
31//
倒序排列為:
32for (int i = 0; i < myintarray.length - 1; i++)
3343}44
}45 console.writeline("
倒序排列為:");
46foreach (int outint in
myintarray)
4750
51console.readkey();
52 }
氣泡排序演算法 C 氣泡排序演算法排序詳解
氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...
c 排序演算法 氣泡排序
前一章講過的簡單桶排序有很多缺陷,它只能給整數排序,對付浮點數就無能為力了。如果想對像3.5,5.66,7.43,6.9 這些小數排序,可以用氣泡排序法 bubble sort 氣泡排序法的基本思想是 每次比較兩個相鄰的元素,如果順序錯誤就交換它們的位置。例如我們對66 77 99 100 101 ...
c 氣泡排序演算法
基本思想 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。第1趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。第2趟 仍從第一對數開始比較 因為可能由於...