标题:请大家给我指点一下
只看楼主
hanshui
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-8-5
 问题点数:0 回复次数:4 
请大家给我指点一下

有这样一个程序:(我只写出了函数定义那部分,其他的就不些了)
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是不是多于啊,但是我又不确定,请大家给我指点一下.
谢谢啦!

搜索更多相关主题的帖子: 函数 void 
2007-08-07 21:47
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
得分:0 

不多余
如果你觉得多余,那么就试着把多余的部分去掉,看程序会不会出错


坚决不跟用TC的人打交道!
2007-08-07 21:52
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
得分:0 
冒泡!!肯定不多于阿!!k=i;就是每次假设第一个最大,k=j;就是找到那个最大的下标!!

要练习算法就来http:///!!有挑战哦!!
2007-08-07 22:29
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
不多余
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;
}
}

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-08 08:12
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
得分:0 

个人感觉有点多余,请看我的修改(已经编译通过):
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;
}
}
}


2007-08-08 09:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-161065-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065087 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved