氣泡排序(bubblesort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到最大數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到乙個新的最大數。如此下去,直至最終完成排序。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。
用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j。外迴圈重複9次,內迴圈依次重複9,8,...,1次。每次進行比較的兩個元素都是與內迴圈j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,...,9,對於每乙個i, j的值依次為1,2,...10-i。
氣泡排序是穩定的。
在許多程式設計中,我們需要將乙個數列進行排序,以方便統計,常見的排序方法有氣泡排序,二叉樹排序,選擇排序等等。而氣泡排序一直由於其簡潔的思想方法和比較高的效率而倍受青睞。
設想被排序的陣列r[1..n]垂直豎立,將每個資料元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃瞄陣列r,凡掃瞄到違反本原則的輕氣泡,就使其向上"漂浮",如此反覆進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。
c#**:
//////
bubble sort
//////
///public
static
void
bubblesort
<
t>
(t array)
where
t : icomparable}}
}
測試**:
int array
=new
int ;
console.writeline(
"before bubble sort");
foreach
(int
i in
array)
console.writeline();
sorthelper.bubblesort
<
int>
(array);
console.writeline(
"after bubble sort");
foreach
(int
i in
array)
console.writeline();
console.read();
執行結果:
before bubble sort23->
15->
27->
90->
69->
66->
158->
45->
32->
1->
45->
22->
66->
77->
44->
after bubble sort
1->
15->
22->
23->
27->
32->
44->
45->
45->
66->
66->
69->
77->
90->
158->
C 氣泡排序
using system using system.collections.generic using system.linq using system.text 個數是 j 1 num j double.parse console.readline console.writeline 你剛才輸入的...
C 氣泡排序
class program endregion region 該方法獲得需要排序的陣列,表呼叫排序方法進行排序 該方法獲得需要排序的陣列,表呼叫排序方法進行排序 public static void sortednumbers 個數字 numbercount for int i 0 i number...
氣泡排序 C
氣泡排序 1 排序方法 將被排序的記錄陣列r 1.n 垂直排列,每個記錄r i 看作是重量為r i key的氣泡。根據輕氣泡不能在重氣泡之下的原則,從下往上掃瞄陣列r 凡掃瞄到違反本原則的輕氣泡,就使其向上 飄浮 如此反覆進行,直到最後任何兩個氣泡都是輕者在上,重者在下為止。1 初始 r 1.n 為...