①比喻介紹:氣泡排序是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...