利用c語言函式實現冒泡與選擇排序

2021-10-24 08:44:59 字數 855 閱讀 5852

一直以來排序都是c語言入門者的重點學習物件,冒泡與選擇無疑是經典中的經典。單獨去寫排序我想並不如何困難,但是想要利用函式似乎並不是很容易。涉及到函式傳遞的問題從來就沒有簡單過,有時候即使編譯器並沒有報錯但是在執行的過程中並沒有實現排序的功能。

以下的**是最經典的排序**,並沒有利用指標,也沒有將交換的部分單獨開來再寫乙個函式。目的是為了方便初學者去理解掌握,原理的話沒有詳細解釋是太多的參考書都有講不必贅述了,希望大家記住的不是**而是原理。

#define _crt_secure_no_warnings

#include

#define n 5

void

compare1

(int a)

;void

compare2

(int a)

;void

main()

compare1

(a);

printf

("n個數按照從小到大排序後的結果為\n");

for(i =

0; i < n; i++

)printf

("%d"

, a[i]);

compare2

(a);

printf

("n個數按照從小到大排序後的結果為\n");

for(i =

0; i < n; i++

)printf

("%d"

, a[i]);

}void

compare1

(int a)

}}void

compare2

(int a)

}}}

c語言實現選擇排序與氣泡排序

冒泡 這個名字的由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故名。這裡以從小到大排序為例進行講解。基本思想及舉例說明氣泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較,就選出最大的數 經過第2輪比較,就選出次大的數,以此類推。下面以對 3 2 4 1 進行氣...

python實現冒泡選擇插入快排

通過交換使相鄰的兩個數變成小數在前大數在後,這樣每次遍歷後,最大的數就 沉 到最後面了。重複n次即可以使陣列有序。def butttle arr for i in range len arr 1 exchange false for j in range len arr i 1 if arr j a...

效率最高的冒泡與快排演算法 C語言實現

快速排序 不斷地把最大或最小元素不斷冒出來。如排序5 3 4 9 7 6 2 假如我們用公升序的方式,從左邊開始掃瞄,相鄰元素兩兩比較,當左邊元素比右邊大時就交換,反之,則不用交換。第一趟迴圈後的結果為 3 1 5 4 6 7 49這樣就把最大的9冒出來了 第二塘迴圈後的結果為 1 3 4 5 6 ...