一、用sort对字符串排序
1.sort可以对string排序
【#|对简单字符串的排序整理(简单的2种方法)】我在做题的时候发现我用sort对string排序的语句判错。
我最开始写的代码是
string s;
cin>>s;
int len=s.length();
sort(s,s+len);
我的天,我现在看见我这么写,我真想给自己一下子。现在因为返乡隔离什么的大脑都已经混乱了,我想我真是封的疯了。
在我查找相关的资料之后,终于大彻大悟,醍醐灌顶。正确代码如下:
string s;
cin>>s;
sort(s.begin(),s.end());
看见正确的之后突然想起来string是一个类啊,和vector,queue什么的都有库函数啊,而且巨好用啊。这样事情就明了了,直接用这个方法对string排序就好了。
2.sort可以对字符数组排序
int main(){
char ch[1001];
cin>>ch;
int len=strlen(ch);
sort(ch,ch+len);
cout<
用cin直接按首地址输入字符串,不能读入空格和回车
输入一串字符之后再按回车就直接输出了,应该根本没机会在cin中按回车 。(如果此话有错误,欢迎家银们批评指正)
文章图片
如果这样输入字符串
这样应该是没有超过100个字符都给算到里面了,如果输入没有超过100个字符,结束输入用ctrl+z结束。
文章图片
如果输入超过100个字符,即使在输入的过程中超过了100,但还是可以输入,最后按回车就结束输入了,字符数组里面只取100个字符。
文章图片
二、类似冒泡排序的方法 这个方法具体有没有名字我不知道,但我刚学的时候总是用这个方法,其实还挺好用。
但是时间复杂度高,为O(n2)。
文章图片
int main(){
char ch[1001];
cin>>ch;
int len=strlen(ch);
for(int i=0;
i
i 从 0 循环到 len-1,j 从 i+1 到最后。
如果在s[i]后面有比s[j]小的,就把小的放在前面,每一次移动都确定了前面的1个元素的位置,最后就排好序了。属于稳定排序。
推荐阅读
- #|邻接矩阵(有向图顶点的入度)
- 0基础C语言保姆教学|C语言自学保姆教程——第一节--编译准备与第一个C程序
- #|邻接矩阵(构造只有结点没有边的图)
- #|邻接矩阵(构造无权图)
- #|i.MX6ULL终结者Linux 电容触摸屏实验使用Linux内核自带的ft5426驱动
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验运行测试
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验Tslib移植和使用
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验实验程序编写
- #|i.MX6ULL终结者Linux 电容触摸屏实验硬件原理图