算法的核心:在一個可排序的有序列表中,在每一輪的循環中找出最小的元素並把他放在最終應該在的位置上,下一輪將從i+1開始搜索,直至所有的元素都在他應該在的位置時,程序結束。
eg:
89 45 68 90 29 34 17
i=0
17 |45 68 90 29 34
89
i=1 17 29 |68 90 45 34 89
i=2 17 29 34 |90 45 68 89
i=3 17 29 34 45 |90 68 89
i=4 17 29 34 45 68 |90 89
i=5 17 29 34 45 68 89 |90
int i,j,temp,min;
int A[] = {89,45,68,90,29,34,17};
for(i = 0; i<A.length-1;i++){
min = i;
for(j = i+1; j< A.length; j++){
if(A[min]>A[j]){
min = j;
}
}
if(min != i){
temp = A[min];
A[min] = A[i];
A[i] = temp;
}
}
Sometimes the questions are complicated and the answers are simple.<^~^>