//bubble sort
#include
intpsort
(int*,
int)
;int
main
(void);
int ans[10]
=;int len =
sizeof
(ans)
/sizeof
(ans[0]
);printf
("len =%d\n"
,len)
;for
(int i=
0;i)psort
(ans,len)
;for
(int i=
0;i)return0;
}int
psort
(int
*pchange ,
int length)}if
(flag)
}return flag;
}
console執行結果如下:
雙重for迴圈,所以時間複雜度是:o(n²), 變數的記憶體分配都是在定義的時候,也就有限數量,所以空間複雜度是o(1)。
這個**容易埋坑的地方是這個雙重for迴圈, 若為以下寫法,會出現pchange[length],導致陣列越界。
for
(int i=
0; i
1;i++
)}
然後產生報錯;
*
** stack smashing detected ***
:./a.out terminated
aborted
(core dumped)
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...