快排 PTA 7-7 把字符串中的所有字符按从小到大的顺序排序

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章