这两个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 编辑 ]