#include <iostream>
using namespace std;
const int N = 20;
char s[N][N];
char com1[2*N+1];
char com2[2*N+1];
int comp(const void *v1, const void *v2)
{
strcpy(com1, (char*)v1);
strcat(com1, (char*)v2);
strcpy(com2, (char*)v2);
strcat(com2, (char*)v1);
return strcmp(com1, com2);
}
void min_combination(int *a, int len)
{
int i;
for(i=0; i<len; i++)
sprintf(s[i], "%d", a[i]);
qsort(s, len, N, comp);
for(i=0; i<len; i++)
cout<<s[i];
cout<<endl;
}
int main()
{
int a[] = {3,32,321,34,345};
int len = sizeof(a)/sizeof(a[0]);
min_combination(a, len);
return 0;
}
剑指offer-33:把数组排成最小的数
最新推荐文章于 2019-09-02 16:06:18 发布