C語言例題 用指標實現氣泡排序及其優化

2021-10-13 02:59:58 字數 861 閱讀 9394

#include

"stdio.h"

void

main()

sort

(arrays, count)

;printf

("資料排序結果為:\n");

for(i =

0; i < count; i++)}

//進行排序的函式

void

sort

(int

*p,int count)

//p指標前進,比較下一位元素

p++;}

}}

是不是一定要走完陣列的length-1趟才能完成氣泡排序,肯定不是,當某一趟迴圈沒有發生元素交換的時候,陣列排序已經完成了,所以我們可以設定乙個標誌,一旦某一趟迴圈沒有發生元素交換結束排序即可。

#include

"stdio.h"

void

main()

sort

(arrays, count)

;printf

("資料排序結果為:\n");

for(i =

0; i < count; i++)}

void

sort

(int

*p,int count)

p++;}

//走完上一趟發現標誌位沒有改變說明陣列已經有序,結束迴圈

if(flag ==1)

}printf

("比較了%d次"

, count1)

;}

初學c語言,如有錯誤,還望指正,因考試需要,**執行環境為:不同編譯器和不同版本c語言**略有不同。

C語言 氣泡排序,選擇排序例題

1.使用氣泡排序將以下數列按照從小到大的順序輸出 123,45,6,22,99,1,38,41,6,0 氣泡排序排序過程容易理解,每個數如同水中的氣泡一樣,小的上公升的速度快,被排到最上面,而大的被依次排在最下面,這樣的過程我們比喻成 冒泡 首先,需要比較相鄰的元素,如果第乙個比第二個大,就交換他們...

用c 實現氣泡排序

現在假設有乙個陣列 3,5,7,2,4 那麼如果要想把它用冒泡從小到大排序,首先取3和5比較,3小於5 用5和7比較,5小於7 用7和2比較,7大於2 用7和4比較,7大於4 第0輪比下來陣列變為 3,5,2,4,7 比較了 5 1 次 第1輪還是依次比較陣列變為 3,2,4,5,7 比較了 5 2...

氣泡排序及C 實現

演算法簡介 如果按照從小到大的順序排列,比較相鄰的元素,如果前面的數比後面的數大,則交換兩個數的位置,這樣選出乙個最大的數字放在最後。針對前面的數字,再一次按同樣的方式比較相鄰的元素,如法炮製就會選出乙個次大數字放在倒數第二位置。如此迴圈,直至排序完畢 這種方式類似於體育課排高低個,先選出最高的放在...