C語言中的選擇排序?

時間 2021-09-15 22:38:02

1樓:郭建波

選擇排序的過程:

陣列排序前 7 23 12 4 33 21 2 17 13 9

第一輪迴圈 2 23 12 4 33 21 7 17 13 9

第二輪迴圈4 12 23 33 21 7 17 13 9

第三輪迴圈7 23 33 21 12 17 13 9

第四輪迴圈9 33 21 12 17 13 23

第五輪迴圈12 21 33 17 13 23

第六輪迴圈13 33 17 21 23

第七輪迴圈17 33 21 23

第八輪迴圈21 33 22

第九輪迴圈22 33

氣泡排序法的過程

陣列排序前 7 23 12 4 33 21 2 17 13 9

第一輪排序 7 12 4 23 21 2 17 13 9 33

第二輪排序 7 4 12 21 2 17 13 9 23

第三輪排序 4 7 12 2 17 13 9 21

第四輪排序 4 7 2 12 13 9 17

第五輪排序 4 2 7 12 9 13

第六輪排序 2 4 7 9 12

第七輪排序 2 4 7 9

第八輪排序 2 4 7

第九輪排序 2 4

我們可以看到,他們的不同在於,每一輪交換的次數不同:

選擇排序是找到最大或者最小值然後跟相應位置的數值交換一次。

而氣泡排序是從頭開始只要大小順序不對,就進行交換。

C語言專欄:

《C語言核心30天突破》

怎麼使用c語言中的sort排序,在結構體裡面按學號排序??

陳舸 問題描述的不是很清楚,不過我大概猜你是想對某些結構體做排序,結構體裡有個學號的字段,要以學號為標準來排序?可以使用qsort 隨手碼了乙份。include include include typedef struct student Student int compare const void...

c語言中,main int main void int main void main 有什麼區別?

PegasusWang 這篇文章講了為什麼void main是錯的,還有main各種寫法。 楊高峰 main 老式的寫法。返回型別int在新型的編譯器不可省略,否者會有警告。int main void 新式的寫法 int main 新式的寫法 void main 老式 不標準的寫法。6.0及之前的V...

c語言中 include stdio h , 的作用是什麼,為什麼不能去掉 ?

nullptr 表示這是預處理語句,由預處理器來處理。至於為啥是 這就是語法設計的事情了,也可以設計成 include等等。C C 標準已經規定是 開頭了,編譯器都是以檢測這個符號來做判定了,所以你如果想去掉,那麼就要去改C C 的編譯器,做乙個屬於你自己的編譯器。 程式設計思維 號表示這一行後面的...