陣列排序

慈慈
Nov 25, 2020

--

selection sort

假設有一個陣列temp需要排序(由小到大)
ps. index就是array的第幾格

陣列temp

概念:
從temp[0]~temp[9] 找出最小的,放在temp[0]
從temp[1]~temp[9] 找出最小的,放在temp[1]
從temp[2]~temp[9] 找出最小的,放在temp[2]
…以此類推

這樣
temp[0]就會是最小的
temp[1]就會是第二小的
temp[2]就會是第三小的
…以此類推

因此我們可以用這種概念來排序

圖示:

迴圈的第一次:
從temp[0]~temp[9] 找出最小的,放在temp[0]
最小的是 temp[9] 的10
將 temp[9] 和 temp[0] 交換
即可將最小值放在temp[0]
同時temp[0]原本的值,也不會因此不見

陣列temp
迴圈第一次執行完的 陣列temp

迴圈的二次:
從temp[1]~temp[9] 找出最小的,放在temp[1]
最小的是 temp[9] 的20
將 temp[9] 和 temp[1] 交換

陣列temp
迴圈第二次執行完的 陣列temp

迴圈的三次:
從temp[2]~temp[9] 找出最小的,放在temp[2]
最小的是 temp[7] 的20
將 temp[7] 和 temp[2] 交換

陣列temp
迴圈第二次執行完的 陣列temp

…以此類推

程式碼提示:

for(i=?; i<?; i++){
for(j=?; j<?; j++){
找到最小值
}
交換
}

--

--

No responses yet