题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include <iostream>
#include <utility>
#include<vector>
#include<algorithm>
using namespace std;
void Qicksort(vector<string>& words,int start,int end){
if(start >= end)return;
int xiaoduiend = start,luanduistart = start+1;
for(;luanduistart <= end;++luanduistart){
if(words[luanduistart] <= words[start]){
++xiaoduiend;
swap(words[xiaoduiend],words[luanduistart]);
}
}
swap(words[xiaoduiend],words[start]);
Qicksort(words,start,xiaoduiend-1);
Qicksort(words, xiaoduiend+1,end);
}
int main() {
int n;
cin >> n;
vector<string> words(n);
for(int i = 0;i < n;++i){
cin >> words[i];
}
Qicksort(words, 0, n-1);
for(int i = 0;i < n;++i){
cout << words[i] << endl;
}
}
// 64 位输出请用 printf("%lld")
最好自己写出快排,不用sort
查看10道真题和解析