C語言 氣泡排序

2021-10-10 16:19:08 字數 1291 閱讀 9460

①比喻介紹:氣泡排序是c語言三大基本排序中的其中一種,它就像是海底的泡泡一樣,一條魚在海底吐出泡泡,泡泡越往上就會變的越大(此部落格以公升序為例進行學習)。

②底層邏輯:利用兩個for迴圈,讓相鄰的兩個數進行比較,每次比較後最大的數會放在上邊,兩個for迴圈結束之後,陣列中的數字會按公升序排列完畢。

③注意:如果需要排序n個陣列,最多隻需進行n輪互換,每一輪的互換中,最多隻需進行n-1次互換。

比如,對這個一維陣列中的5個數字進行排序

————————————————————————————————

12 34 32 55 21

————————————————————————————————

第一輪12和34進行比較:12<34 不需要互換位置

34和32進行比較:34>32 互換位置

34和55進行比較:34<55 不需要互換位置

55和21進行比較:55>21 互換位置

第一輪排序結束,為:12 32 34 21 55

————————————————————————————————

第二輪12和32進行比較:12<32 不需要互換位置

32和34進行比較:32<34 不需要互換位置

34和21進行比較:34>21 互換位置

34和55進行比較:34<55 不需要互換位置

第二輪排序結束,為:12 32 21 34 55

————————————————————————————————

第三輪12和32進行比較:12<32 不需要互換位置

32和21進行比較:32>21 需要互換位置

32和34進行比較:32<34 不需要互換位置

34和55進行比較:34<55 不需要互換位置

第三輪排序結束,為:12 21 32 34 55

—————————————————————————————————

排序結束

#include

intmain()

for(j=

0;j<

4;j++

)//外層迴圈}}

printf

("排序之後:\n");

for(i=

0;i<

5;i++

)//排序結束,遍歷這個陣列

C語言 氣泡排序

氣泡排序 兩兩比較相鄰記錄的關鍵碼,如果反序則交換,直到沒有反序記錄為止 將整個待排序的記錄序列分成有序區和無序區,初始時有序區為空,無序區包括所有待排序的記錄 對無序區從前向後依次將相鄰記錄的關鍵碼進行比較,若反序則交換,從而使得關鍵碼小的記錄向前移,關鍵碼大的向後移 像水中的氣泡,體積大的先浮起...

氣泡排序 C語言

c語言是比較簡單基礎的排序方式,排序效率並不高,但是很穩定。通過rand隨機生產10個小於20的數來測試排序。氣泡排序 include include include void bubblesortbetter int a,int n 改進 if flag 0 break void bubbleso...

C語言 氣泡排序

直接看 吧 include void bubblesort int r,int len if exchange 如果沒有發生交換,提前終止演算法 return int main bubblesort aa,10 for int i 0 i 10 i printf d aa i printf n re...