天天看點

學習小結----排序

排序即對一序列對象根據某個關鍵字進行排序

在c語言中排序是較為重要的一個部分

通過上周課程,我學習了兩種經典的排序方法:1.選擇排序法 2.冒泡排序法

1.選擇排序法

思路:每次從排序列中按一定順序檢索序列,從中選出一個最小值,将其放在起始位置,以此類推,直到所有序列按一定順序排列完全。

代碼如下:

學習小結----排序

大緻過程如圖:

學習小結----排序

 運作結果:

學習小結----排序

選擇排序法是表現最穩定的排序算法之一,因為無論什麼資料進去都是O(n^2)的時間複雜度,是以選擇排序法适用于規模較小的序列排序。

選擇排序法也是較為簡單易了解的排序法,這也是它的優點之一。

關于選擇排序的算法分析:

學習小結----排序
學習小結----排序

 2.冒泡排序法

思路:從左到右,相鄰元素進行比較。每次選出一個較大或者較小的數,通過交換位置将其放在左邊或者右邊。以此類推,最小的數或者最大的數就會從最左端冒出,就像冒泡一樣。

以從小到大排序為例,第一輪比較過後最小的數就會出現在數列的最左邊,第二輪比較後第二小的數就會出現在數列的第二位..........

就這樣一輪一輪的下去,最後實作從小到大的排序。

冒泡排序法的代碼:

學習小結----排序

運作結果如下:

學習小結----排序

 關于冒泡排序法的算法分析: