Board logo

標題: 選擇排序 [打印本頁]

作者: tonyh    時間: 2016-11-19 11:15     標題: 選擇排序

本帖最後由 tonyh 於 2017-6-24 14:43 編輯

選擇排序法(Selection Sort)是排序演算法的一種,也是一種簡單容易理解的演算法,其概念是反覆從未排序的數列中取出最小的元素,加入到另一個的數列,結果即為已排序的數列。運算流程如下:

1.從未排序的數列中找到最小的元素。
2.將此元素取出並加入到已排序數列最後。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:



然而實作上通常不使用額外的數列來儲存已排序的部分,而使用原地(In-place)的方式來完成,數列的左半部表示已排序部分,右半部表示未排序部分,不另外使用數列。從未排序部分找到最小的元素,利用交換的方式將元素放置已排序部分的尾端。運算流程如下:

1.從未排序的數列中找到最小的元素。
2.將此元素與已排序部分的尾端元素進行交換。
3.重複以上動作直到未排序數列全部處理完成。
流程示意圖:






歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2