请大家给我指点一下
有这样一个程序:(我只写出了函数定义那部分,其他的就不些了)
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];array[k]=arrar[i];array[i]=t;
}
}
是关于一个排序的程序;而觉的函数中k=i,和k=j是不是多于啊,但是我又不确定,请大家给我指点一下.
谢谢啦!
----------------解决方案--------------------------------------------------------
不多余
如果你觉得多余,那么就试着把多余的部分去掉,看程序会不会出错
----------------解决方案--------------------------------------------------------
冒泡!!肯定不多于阿!!k=i;就是每次假设第一个最大,k=j;就是找到那个最大的下标!!
----------------解决方案--------------------------------------------------------
不多余
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i; /*此处k赋值后在后两行 array[j]<array[k]处进行比较*/
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j; /*此处k赋值后在后一行 中交换*/
t=array[k];array[k]=arrar[i];array[i]=t;
}
}
----------------解决方案--------------------------------------------------------
个人感觉有点多余,请看我的修改(已经编译通过):
void sort(int array[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(array[i]<array[j])
{ t=array[i];
array[i]=array[j];
array[j]=t;
}
}
}
----------------解决方案--------------------------------------------------------