算法的核心:在一个可排序的有序列表中,在每一轮的循环中找出最小的元素并把他放在最终应该在的位置上,下一轮将从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.<^~^>