关于C++的一个小问题
#include(iostream.h)
#include(string.h)
void main(void)
{
char*str[]={“Follow me”,“BASIC”,“Great Wall”,“Department”,“Computer design”};
char*p1;
int i,j,k;
for(i=0;i<4;i++){
k=i; //A
for(j=i+i;j<5;j++)
if(strcmp(str[k],str[j])>0)k=j;
if(k!=i){ //B
p1=str[k];str[k]=str[i];str[i]=p1;
}
}
for(i=0;i<5;i++)cout<<str[i]<<'\n';
}
谁能给我详细地解释一下,为什么要A行还要B行?我觉得有A行就足够了啊,望高手赐教!要通俗易懂的,我的QQ:***********.谢谢!
参考答案:k==i的时候不必交换,这样做是为了提高效率,虽然在这个程序上体现不出什么效率的问题,但要有这种意识。