字串排序【第十一届】【省赛】【B组】
时间: 2023-10-08 18:14:21 浏览: 159
题目描述
给定n个长度不超过10的字符串,按照字典序从小到大排序。
输入格式
第一行为一个整数n,表示字符串个数。
接下来n行,每行一个字符串。
输出格式
按照字典序从小到大排序的结果,每个字符串一行。
数据范围
1≤n≤105
输入样例
4
abcd
abdc
dabc
dcba
输出样例
abcd
abdc
dabc
dcba
算法1
(快排) $O(nlogn)$
快速排序
时间复杂度
参考文献
python3 代码
C++ 代码
java 代码
算法2
(归并排序) $O(nlogn)$
时间复杂度
参考文献
C++ 代码
算法3
(桶排序) $O(n)$
时间复杂度
参考文献
C++ 代码
相关问题
试题 历届真题 字串排序【第十一届】
这道题目属于编程类的问题,可以回答。以下是可能的解题思路:
题目描述:
输入多个字符串,按照字典序从小到大排序后输出。
输入:
第一行一个正整数 n(n≤10),表示字符串的个数。
接下来 n 行,每行一个字符串,字符串的长度均不超过 10(字符串中只包含大小写字母)。
输出:
按照字典序从小到大排序后的字符串。
样例输入:
3
apple
orange
banana
样例输出:
apple
banana
orange
解题思路:
首先读入 n,然后读入 n 个字符串,将它们存储到一个字符串数组中。使用 qsort 函数对字符串数组进行排序,排序的比较函数可以使用 strcmp 函数。
最后按照顺序输出排序后的字符串即可。
参考代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 10
#define MAX_LEN 11
char strings[MAX_N][MAX_LEN];
int cmp(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", strings[i]);
}
qsort(strings, n, sizeof(char[MAX_LEN]), cmp);
for (int i = 0; i < n; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
注意:该解法假定字符串只包含大小写字母,如果出现其它字符(如数字、符号),则可能需要相应修改。
蓝桥杯A组 字串排序 C++
题目描述
输入n个字符串,按照字典序从小到大排序后输出。
输入格式
第一行包含一个整数n。
接下来n行,每行包含一个字符串。
输出格式
共n行,按照字典序从小到大排序后输出。
数据范围
1≤n≤105,
每个字符串的长度不超过100。
输入样例
3
nowcoder
hello
world
输出样例
hello
nowcoder
world
算法1
(暴力枚举) $O(n^2)$
1.暴力枚举
时间复杂度
参考文献
python3 代码
C++ 代码
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
阅读全文