后缀子串排序
排序 子串 后缀
2023-09-14 09:11:24 时间
转自:https://www.cnblogs.com/liangrx06/p/5083933.html
题目描述
对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain
输入描述:
每个案例为一行字符串。
输出描述:
将子串排序输出
示例1
输出
复制ain grain in n rain
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 1000 int cmp(const void *a, const void *b) { return strcmp((char *)a, (char *)b); } int main(void) { int i, j, k, n; char s[N][N]; while (scanf("%s", s[0]) != EOF) { n = strlen(s[0]); for(i=1; s[0][i]; i++) { k = 0; for(j=i; s[0][j]; j++) s[i][k++] = s[0][j]; s[i][k] = '\0'; } qsort(s, n, sizeof(s[0]), cmp); for(i=0; i<n; i++) printf("%s\n", s[i]); } return 0; }
//难点在于排序,没想到一个qsort就搞定了。头文件stdlib.h。
它的参数为: 1 待排序数组首地址
2 数组中待排序元素数量(改题目中也就是字符串的长度)
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序(排序规则,从大到小还是从小到大)
相关文章
- 高性能排序函数实现方案
- 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串详解编程语言
- 揭秘Linux优先级:最佳排序法(linuxprio)
- SQL Server排序之正序排列法(sqlserver正排序)
- Linux 启动:优先排序的重要性(linux启动优先级)
- MySQL关联查询排序技巧分享(mysql两表关联排序)
- MySQL数据库中如何实现升序排序(mysql中升序排序)
- Oracle 优先级顺序指南做好排序准备(oracle中优先级顺序)
- Oracle联合排序及两层分页提升数据库性能(oracle两层分页排序)
- Oracle的双重排序提升效率的有效方法(oracle两个排序条件)
- MySQL查询优化:连接查询排序浅谈
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
- oracle通过行范围查询取4至10行并排序