C语言,用选择法对数组中10个整数按由小到大排序

2024-11-29 08:41:59
推荐回答(1个)
回答1:

这很简单啊,k=1,j=2,a[k]=a[1]=4,a[j]=a[2]=3

 那么a[j]

也即a[k]变为3了,但是a[1]依然不变,还是=4

结果就是a[k]是a[1]和a[2]里那个较小的值

当然就不能用a[k]=a[j]替代啦,因为会抹除a[k]原有的数据

这种排序方法再加个if就perfect了:

void sort (int a[],int n)
{
int i,j,k,t;
for(i=0;i    k=i;
    for(j=i+1;j        if(a[j]        k=j;
    }
    if(k!=i){
        t=a[k];a[k]=a[i];a[i]=t;
    }
}
}