这两个sort函数什么区别~~~
程序代码:#include"string.h"
main(){
void sort(char *name[],int n);
void sort2(char *name[],int n);
void print(char *name[],int n);
static char *name[]={ "CHINA","AMERICA","AUSTRALIA","FRANCE","GERMAN"};
int n=sizeof(name) / sizeof(char *);
sort2(name,n);
print(name,n);
}
void sort(char *name[],int n){
char *pt;
int i,j,k;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[i],name[j])>0)
{
pt=name[i];
name[i]=name[j];
name[j]=pt;
}
}
}
void sort2(char *name[],int n){
char *pt;
int i,j,k;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=i){
pt=name[i];
name[i]=name[k];
name[k]=pt;
} else{
printf("i=%d,k=%d\n",i,k);
}
}
}
void print(char *name[],int n){
int i;
for (i=0;i<n;i++) printf("%s\n",name[i]); getch();
}这个sort函数跟sort2函数什么区别,sort2的效率会更高?有必要在strcmp之后再做一次判断吗????想不通
[ 本帖最后由 xuxu_c 于 2010-6-11 18:18 编辑 ]




