您的位置:首页 > 其它

对于排序的深刻理解

2016-10-02 20:06 183 查看
难道排序非得就是直接比较大小吗?完全错误,下面这个就是一个很好地例子

给出N 整数,他们连接成最大整数为?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXN 50
char num[MAXN][100];
int cmp(const void *a,const void *b);

int main()
{
int n,i,temp;
printf("please input the n!\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&temp);
itoa(temp,num[i],10);
}

qsort(num,n,sizeof(num[0]),cmp);
for(i=n-1;i>=0;i--)
printf("%s",num[i]);
printf("\n");
return 0;
}

int cmp(const void *a,const void *b)
{
char pa[100];
char pb[100];
char *s,*t;
s=(char *)a;
t=(char *)b;
strcpy(pa,s);
strcpy(pb,t);
strcat(pa,t);
strcat(pb,s);

return strcmp(pa,pb);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: