这很简单啊,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; }}}
也即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; }}}