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;
}