selection sort
假設有一個陣列temp需要排序(由小到大)
ps. index就是array的第幾格
概念:從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[1]~temp[9] 找出最小的,放在temp[1]
最小的是 temp[9] 的20
將 temp[9] 和 temp[1] 交換
迴圈的三次:從temp[2]~temp[9] 找出最小的,放在temp[2]
最小的是 temp[7] 的20
將 temp[7] 和 temp[2] 交換
…以此類推
程式碼提示:
for(i=?; i<?; i++){
for(j=?; j<?; j++){
找到最小值
}
交換
}