c++排序(第一章----桶排序与sort排序)

众所周知,在c++中排序是一种非常重要的算法体现,穿插于大大小小的题目当中,基础的排序大多在CCF GESP C++ 四级的知识点中,所以,要入门c++,学会排序是必不可少的。

我们先来学习较为简单的桶排序。

【算法介绍】

桶排序的思想:

若待排序的值在一个有限范围内(整型)时,可设计有限个有序桶,桶号就是待排序的值。

之后,将待排序的值依次装入对应的有序桶中(重复值都装入对应的桶),然后顺序输出各桶的值,便得到有序的序列。

【算法代码】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=500;
int a[maxn];
int main() {
    int n;
    cin>>n;
    int x;
    for(int i=1; i<=n; i++) {
        cin>>x;
        a[x]++;
    }
 
    for(int j=1; j<=maxn; j++) {
        while(a[j]>0) {
            cout<<j<<" ";
            a[j]--;
        }
    }
    return 0;
}

由于桶排序需要创建多个桶,特别占用空间,尤其是它的时间复杂度也达到了O(n²),所以在信息学奥赛中不经常用。

接下来我们介绍sort排序。

【算法介绍】

sort是一个非常方便的排序算法,与其他不同,它不用长篇大论的打(代码),只需要套用就行,非常方便,时间复杂度也只有O(log2n),所以在许多比赛中也经常出现,它的格式是这样的:

cpp 复制代码
sort(数组名+开始下标,数组名+开始下标+结束下标)
//这样做到的默认是从小到大排序。

当然,如果想要从大到小排,需要自己写一个函数为排序规则。

【算法代码】

从小到大排:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
 
const int maxn=100;
int a[maxn];
 
int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];
 
    sort(a+1,a+1+n);
    for(int i=1; i<=n; i++) {
        cout<<a[i]<<" ";
    }
 
    return 0;
}

从大到小排:

cpp 复制代码
​
#include <bits/stdc++.h>
using namespace std;
 
const int maxn=105;
int a[maxn];
 
int cmp(int a,int b){ 
    return a>b;
    }
 
int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        cin>>a[i];
    }
    
    sort(a+1,a+1+n,cmp);
    for(int i=1; i<=n; i++) {
        cout<<a[i]<<" ";
    }
 
    return 0;
}

​

本期就这样愉快地结束了(求赞求关)。

相关推荐
果果燕3 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
老洋葱Mr_Onion3 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++
不会就选b5 小时前
算法日常・每日刷题--<优先级队列>2
数据结构·算法
小小龙学IT6 小时前
simdjson:利用 SIMD 指令实现 GB/s 级 JSON 解析的 C++ 开源库
开发语言·c++·json
LuminousCPP6 小时前
单链表专题(三)-刷题复盘篇:从快慢指针到环形链表 II 数学推导
数据结构·经验分享·笔记·学习·算法·链表
ChaoZiLL6 小时前
二叉树经典例题
数据结构·算法
不正经学生6 小时前
C语言字符串函数进阶:安全版函数 + 错误处理 + 子串查找
c语言·开发语言·c++·算法·面试
三克的油6 小时前
算法基础-1
数据结构·c++·算法
一米阳光86617 小时前
软考(中级)软件设计师核心笔记(8)数据结构——树与二叉树
数据结构·笔记·职场发展·软考·软件设计师·中级职称
鸿芯微控科技7 小时前
MFC量程怎么选?最小流量、满量程、调节比与误差计算
c++·python·mfc·流量控制·设备选型·质量流量控制器