用c语言
时间: 2024-02-12 08:07:12 浏览: 44
以下是使用C语言的参考代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 1005
char nums[MAXN][MAXN];
int cmp(const void *a, const void *b) {
char *s1 = (char *)a;
char *s2 = (char *)b;
char s3[MAXN * 2], s4[MAXN * 2];
strcpy(s3, s1);
strcat(s3, s2);
strcpy(s4, s2);
strcat(s4, s1);
return strcmp(s4, s3);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", nums[i]);
}
qsort(nums, n, sizeof(nums[0]), cmp);
for (int i = 0; i < n; i++) {
printf("%s", nums[i]);
}
printf("\n");
return 0;
}
```
时间复杂度:O(nlogn),其中 n 是数字字符串的个数。排序的时间复杂度为 O(nlogn),连接字符串的时间复杂度为 O(n)。
阅读全文