選擇排序(selection sort)介紹

 選擇排序是什麼

是一種簡單的演算法。原理是在未排序的數列找出最小值(或最大值),並放在已排序數列的尾端,直到數列排序完成。適合小數據。


舉例

有一個數列[64, 25, 12, 22, 11]做選擇排序。

1. 數列中選最小值11,跟第一個元素交換[11,|25, 12, 22, 64]。

2. 在未排數列選最小值12,與元素25交換 [11,12|25, 22, 64]。

3. 在未排數列選最小值22,與元素25交換 [11,12,22|25, 64]。

4. 在未排數列選最小值25,放在已排數列尾端[11,12,22,25, |64]。

5. 在未排數列選最小值64,放在已排數列尾端[11,12,22,25, 64|]。


時間複雜度

遍歷數列所有元素找出最小值比n次,對每個最小值找適當位置(比n次)放置。所以時間複雜度為O(n^2)。


C語言實作


常見題

用選擇排序從數列尾端開始排,寫該程式


沒有留言:

張貼留言

寫下幸福點子吧!