/*
1:先假设第一个元素是最小的(期初 min_index=0),
遍历后面的如果存在比第一个更小的元素则改变min_index=更小的元素下标,
一次遍历完事则得到min_index是最小元素的索引, 接着交互元素即把最小的元素放到第一个;
2:再假设第二个元素是最小的(期初 min_index=1),
遍历后面的如果存在比第一个更小的元素则改变min_index=更小的元素下标,
一次遍历完事则得到min_index是第二小元素的索引, 接着交互元素即把最小的元素放到第二个;
*/
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void choise(int *a, int n)
{
int i,j,min_index,temp;
for(i=0; i<n-1; i++) {
min_index=i;
for(j=i+1; j<n; j++){
if(a[j] < a[min_index]){
min_index=j;
}
}
if(i!=min_index) {
temp=a[i];
a[i]=a[min_index];
a[min_index]=temp;
}
}
}
int main()
{
int a[] = {1,5,2,3,9,0,8,7,6,4};
int i = 0;
choise(a, 10);
for(i=0;i<10;i++){
printf("===%d\n", a[i]);
}
}