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

​

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

相关推荐
zhangfeng11332 小时前
Ascendc 大语言模型框架 AscendCraft 和pypto 的区别 pypto生成算子c++源码吗
c++·人工智能·语言模型·算子开发
一只小灿灿2 小时前
C++ 修饰符全面详解
开发语言·c++
code_pgf2 小时前
C/C++ 中 `typedef` 关键字详解
c语言·c++
会周易的程序员3 小时前
js-shm: 高性能 Node.js 共享内存模块
开发语言·javascript·c++·node.js·共享内存·shm
2023自学中4 小时前
imx6ull 开发板 贪吃蛇, C++11 SDL2 无硬件GPU优化版
linux·c++
anscos4 小时前
为CUDA 代码引入静态分析
c++·工业软件·功能检测
众少成多积小致巨4 小时前
C++ 规范参考(中)
c++
小保CPP4 小时前
OpenCV C++基于AI模型的场景文本识别(OCR)
c++·人工智能·opencv·计算机视觉·ocr
shylyly_4 小时前
C++中的类型转换
开发语言·c++·匿名对象·隐式类型转换·拷贝优化
jinyishu_4 小时前
哈希表原理与开放定址法C++实现
c++·哈希算法·散列表