經典排序之選擇排序

2021-09-24 21:10:28 字數 687 閱讀 8598

本文在我的個人部落格同步更新

選擇排序是最好理解的乙個排序演算法,它非常的直觀,如果是從小到大排序的話,就是將第乙個元素作為基點,依次與後面所有元素比較,如果比後面的元素大就交換位置,這樣迴圈一輪之後,第乙個元素就成了最小的元素。

這種排序方法其實就是填坑,第乙個坑填最小(最大)的元素,第二個坑填第二小(第二大)的元素,因此選擇排序用**實現起來相當簡單。

選擇排序和氣泡排序的差別在於氣泡排序是相鄰兩個元素相互比較,而選擇排序是選定乙個位置(陣列下標),依次與後面的元素比較,直到這個位置(陣列下標)的元素保證是最大(最小)的。

下面第一段**是我自己寫的,第二段**來自維基百科。

//我自己寫的**

public static void selectionsort(int arr) }}

}//來自維基百科

public static void selectionsort(int arr)

}// 將未排序列中最小元素放到已排序列末尾

if (min != i) }}

最後,我們來個複雜度分析:

下期更精彩,我們下期見~

經典排序之 選擇排序

選擇排序和氣泡排序一樣,也是時間複雜度為o n 2 的排序。陣列 5 6 3 1 8 7 2 4,以從小到大排序為例 1 先找出從0到n 1個數中的最小數,將它與0位上的數交換 結果是1 5 6 3 8 7 2 4 2 再從1到n 1中的數找到最小,將它與1位上的數交換 3 類似一直迴圈到只剩下乙個...

經典排序之選擇排序

選擇排序 基本思想 選擇排序演算法採用的方法比較直觀 通過在待排序子表中完整地比較一遍以確定最大 小 元素,並將元素放在子表的最前 後 面。時間複雜度 o n 2 穩定性分析 該演算法是不穩定排序,因為關鍵字相同的元素在排序過程中可能會交換次序。例如,對資料表 3,3,2 排序時,由於要將第乙個3與...

經典排序之選擇排序

include int main length a.length length 10 printf before ordered n for i 0 i length i printf d a i printf n n for i 0 i length i if index i printf the...