7-7 把字符串中的所有字符按从小到大的顺序排序 (10分)
输入一个字符串,把字符按从小到大的顺序排序后输出。
输入格式:
输入一个长度不超过20的字符串。
输出格式:
把字符按从小到大的顺序排序后输出。
输入样例:
defgacb
输出样例:
abcdefg
思路:
题目很简单,无非就是排序,直接用sort方法就能解决,最近刚学快排,也写了一个快排的方法,代码如下
sort方法:
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin,s);
sort(s.begin(),s.end());
cout<<s;
return 0;
}
快排:
#include <bits/stdc++.h>
using namespace std;
string s;
void quickSort(int left , int right)
{
if(left>right)return;
int l=left,r=right;
char temp=s[left];
while(l!=r)
{
while(l<r && s[r]>=temp)
{
r--;
}
while(l<r && s[l]<=temp)
{
l++;
}
if(l<r)
{
swap(s[l],s[r]);
}
}
s[left]=s[l];
s[l]=temp;
quickSort(left,l-1);
quickSort(l+1,right);
return;
}
int main() {
getline(cin,s);
quickSort(0,s.size()-1);
cout<<s;
return 0;
}