排序即對一序列對象根據某個關鍵字進行排序
在c語言中排序是較為重要的一個部分
通過上周課程,我學習了兩種經典的排序方法:1.選擇排序法 2.冒泡排序法
1.選擇排序法
思路:每次從排序列中按一定順序檢索序列,從中選出一個最小值,将其放在起始位置,以此類推,直到所有序列按一定順序排列完全。
代碼如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yNwYjN1YDNwITYkJDZhZ2NxYzX3MjMwcTMxAzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
大緻過程如圖:
運作結果:
選擇排序法是表現最穩定的排序算法之一,因為無論什麼資料進去都是O(n^2)的時間複雜度,是以選擇排序法适用于規模較小的序列排序。
選擇排序法也是較為簡單易了解的排序法,這也是它的優點之一。
關于選擇排序的算法分析:
2.冒泡排序法
思路:從左到右,相鄰元素進行比較。每次選出一個較大或者較小的數,通過交換位置将其放在左邊或者右邊。以此類推,最小的數或者最大的數就會從最左端冒出,就像冒泡一樣。
以從小到大排序為例,第一輪比較過後最小的數就會出現在數列的最左邊,第二輪比較後第二小的數就會出現在數列的第二位..........
就這樣一輪一輪的下去,最後實作從小到大的排序。
冒泡排序法的代碼:
運作結果如下:
關于冒泡排序法的算法分析: