本帖最後由 tonyh 於 2017-6-24 14:43 編輯
選擇排序法(Selection Sort)是排序演算法的一種,也是一種簡單容易理解的演算法,其概念是反覆從未排序的數列中取出最小的元素,加入到另一個的數列,結果即為已排序的數列。運算流程如下:
1.從未排序的數列中找到最小的元素。
2.將此元素取出並加入到已排序數列最後。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:
然而實作上通常不使用額外的數列來儲存已排序的部分,而使用原地(In-place)的方式來完成,數列的左半部表示已排序部分,右半部表示未排序部分,不另外使用數列。從未排序部分找到最小的元素,利用交換的方式將元素放置已排序部分的尾端。運算流程如下:
1.從未排序的數列中找到最小的元素。
2.將此元素與已排序部分的尾端元素進行交換。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:
|