C 氣泡排序演算法

2022-03-02 21:50:06 字數 1463 閱讀 1215

氣泡排序(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#**通過接受使用者輸入的數字進行排序:

1

static

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趟 仍從第一對數開始比較 因為可能由於...