题解 | 字符串排序

字符串排序

https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

//简单冒泡排序
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    string s;
    vector<string>vec;

    while (n--) {
        cin >> s;
        vec.push_back(s);
    }
 
    for (int i = 0; i < vec.size(); i++) {
        for (int j = 1; j <vec.size()-i; j++) {//-i去除冗余
            if (vec[j-1] > vec[j]) {
                string tmp = vec[j-1];
                vec[j-1] = vec[j];
                vec[j] = tmp;
            }

        }
    }
    for(int i=0;i<vec.size();i++){
        cout<<vec[i]<<endl;
    }
}
// 64 位输出请用 printf("%lld")
//库函数sort排序
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    string s;
    vector<string>vec;

    while (n--) {
        cin >> s;
        vec.push_back(s);
    }
 
   sort(vec.begin(),vec.end());

    for(int i=0;i<vec.size();i++){
        cout<<vec[i]<<endl;
    }

}
// 64 位输出请用 printf("%lld")
//堆排序
#include <functional>
#include <iostream>
#include<bits/stdc++.h>
#include <queue>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    string s;
    priority_queue<string,vector<string>,greater<string>>que;
    //元素类型、底层容器、排序方式,默认less<>是最大堆,改成greater<>是最小堆
    while (n--) {
        cin >> s;
        que.push(s);
    }
    while(!que.empty()){
        cout<<que.top()<<endl;;
        que.pop();
    }
  
   

}
// 64 位输出请用 printf("%lld")
//利用集合性质
#include <functional>
#include <iostream>
#include<bits/stdc++.h>
#include <queue>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    string s;
   multiset<string>sets;
//    有序合集
    while (n--) {
        cin >> s;
        sets.insert(s);
    }
   for(auto iter=sets.begin();iter!=sets.end();iter++){
    cout<<*iter<<endl;
   }
 // multiset 的迭代器(iterator)类似于指针,它指向容器中的元素。当你使用 iter 遍历 multiset 时,iter 本身并不是元素本身,而是一个指向元素的迭代器对象。因此,要访问迭代器指向的实际值,需要通过解引用(*iter)来获取。

归并排序还没学会

全部评论

相关推荐

明天不下雨了:这个项目 这个简历 这个模板 莫不是一个开源的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务