選擇排序法
Selection Sort Algorithm
Selection Sort Algorithm
選擇排序法(Selection sort algorithm)的概念
是指反覆從「未排序好的數值」中找到最小值(遞增時)或最大值(遞減時),把最小(大)值丟到「未排序好的數值」的最左邊(交換位置),再把它標示成已排序好,待所有原始資料中的數值都取出後,已排序的資料就是我們要的結果。
選擇排序法規則(遞增)
① 將數值分為「已排序」和「未排序」兩部分。(第一輪時所有的數值皆為未排序)
② 在「未排序的數字」中找到「最小值」,和「未排序的第1個數」交換,完成1個數的排序。
③ 重複②,直到排序完成。
***若要改為遞減排序,則步驟②中改為尋找「最大值」。
圖片來源: 翰林八下資訊科技教材
圖片來源: 翰林八下資訊科技教材
我們可以從以上的流程,歸納出實作的步驟:
先從未排序的原始資料中找到第一個最小的元素,將它加到已排序數列的第一項。
接著從未排序的原始資料中找到最小的元素。
將此元素加到已排序數列的最後一項。
重複第 2、3 點的步驟,直到原始資料全部處理完成。
資訊科技小常識--陣列(array)
在計算機科學中,陣列是資料結構的一種表示方式,是由相同類型的元素(element)的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引(index)可以計算出該元素對應的儲存位址。 一般陣列位置的表示方式是從0開始編號或索引開頭為0是一種編號方式,一維(或單維)陣列是一種線性陣列,其中元素的存取是以行或列索引的單一下標表示。
(參考資料: 維基百科)
選擇排序法練習
請同學試著將下列兩題使用選擇排序法排列(直接書寫於紙上),解題過程及結果請拍照上傳至Classroom作業區繳交(可使用小畫家、Google繪圖等軟體解題後另存成圖檔),可參考影片上的紙本解題方式