C 氣泡排序

2021-10-12 01:43:40 字數 2025 閱讀 9241

你對冒泡是怎麼理解的呢。

是水裡的小魚兒?需要換氣時的吐泡泡行為,開水沸騰的時從小到大的現象。還是說是這樣?

當然前者可以忽略,如果您能考慮到後者,恭喜你的思路是正確的!

正因為泡泡的出現大小是有規律的,我們就是要將一串數字按「 冒泡 」的規律展示好,這就是今天所要說的主題。

進入主題

氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。

其實質就是把小(大)的元素往前(後)調。

它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從z到a)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。

原理:

給出一串亂序的元素,進行公升序排序,從第乙個元素開始,如果第乙個比第二個大,那麼就交換它們兩個。

按照上述的思路,對後面的每一對相鄰做同樣的工作,直到最後比較完,最後的元素就會是最大的數。

是不是發現了,經過一輪比較後,最大的數到了最後面,類似與水沸騰時最大的泡泡會浮現在水面上,但僅此來說還沒完,前面的元素還不是規律的,所以我們繼續下一輪迴圈。

對接下來的元素重複以上的步驟,依次便得到了第二最大數,第三最大數等。

這樣持續下去,一串有規律的「 泡泡 」就會出現在你眼前!

模擬原理的實現步驟:

每相鄰的數字要進行比較。(3和2進行比較,3比2大,交換;3和9比較,3比9小,不交換;以此類推)

第一輪比較結束,得出最大數9。

第二輪比較結束,得出最大數8。

第三輪比較結束,得出最大數6。

第四輪比較結束,得出最大數5。

第五輪比較結束,得出最大數4。

第六輪比較結束,得出最大數3。

第七輪比較結束,得出最大數2。

可能細心的小夥伴已經發現了規律,八個元素排序(公升序),要進行七輪七次比較,那為什麼每輪結束後,最大元素就不見了呢。

因為我們在每一次比較得出的最大數後,得出的最大元素就不用比較了,讓計算機減少運算,提高計算的效率!

**演示

#include

using

namespace std;

intmain()

}}cout <<

"公升序排序後的效果:"

<< endl;

for(

int i=

0;i<

8;i++

) cout << array[i]

<<

" ";

return0;

}

輸入十個數字:

4 5 2 3 1 8 7 6

公升序排序後的效果:

1 2 3 4 5 6 7 8

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 為...