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

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