算法竞赛中,sort()函数的常见用法。

2023-05-16

【知识点】
虽然我们已经学习了诸如快速排序、桶排序、基数排序、插入排序、选择排序等众多的排序算法,但在算法竞赛中,如需要进行排序,我们一般
不会去重复造轮子,即去实现某种排序算法后再使用,而是直接调用sort()函数。
而在具体的排序数据中,又有
结构体数据及非结构体数据。下面分别阐述。

【非结构体数据利用sort()函数进行
递增排序】
● 数组a[]元素下标从0开始,则调用
sort(a,a+n)进行递增排序。其中,n为数组a[]中元素的个数。

#include <bits/stdc++.h>
using namespace std;

const int maxn=105;
int a[maxn];

int main() {
    int n;
    cin>>n;
    for(int i=0; i<n; i++) {
        cin>>a[i];
    }
    
    sort(a,a+n);
    for(int i=0; i<n; i++) {
        cout<<a[i]<<" ";
    }

    return 0;
}


/*
in:
7
6 12 9 66 7 8 9

out:
6 7 8 9 9 12 66
*/

● 数组a[]元素下标从1开始,则调用sort(a+1,a+1+n)进行递增排序。其中,n为数组a[]中元素的个数。

#include <bits/stdc++.h>
using namespace std;

const int maxn=105;
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;
}


/*
in:
7
6 12 9 66 7 8 9

out:
6 7 8 9 9 12 66
*/

【非结构体数据利用sort()函数进行递减排序】
● 数组a[]元素下标从0开始,则调用
sort(a,a+n,cmp)进行递减排序。其中,n为数组a[]中元素的个数。cmp为下面代码中自定义的实现递减排序的函数名。

int cmp(int a,int b){ //递减排序 
    return a>b;
    }

完整代码如下:

#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=0; i<n; i++) {
        cin>>a[i];
    }
    
    sort(a,a+n,cmp);
    for(int i=0; i<n; i++) {
        cout<<a[i]<<" ";
    }

    return 0;
}


/*
in:
7
6 12 9 66 7 8 9

out:
66 12 9 9 8 7 6
*/

● 数组a[]元素下标从1开始,则调用sort(a+1,a+1+n,cmp)进行递减排序。其中,n为数组a[]中元素的个数。cmp为下面代码中自定义的实现递减排序的函数名。

int cmp(int a,int b){ //递减排序 
    return a>b;
    }

完整代码如下:

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


/*
in:
7
6 12 9 66 7 8 9

out:
66 12 9 9 8 7 6
*/


【结构体数据利用sort()函数进行递增\递减排序】
● 详见:
https://blog.csdn.net/hnjzsyjyj/article/details/120184972



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/121888419
https://blog.csdn.net/hnjzsyjyj/article/details/124114512
https://blog.csdn.net/hnjzsyjyj/article/details/130045851
https://blog.csdn.net/hnjzsyjyj/article/details/120184972

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法竞赛中,sort()函数的常见用法。 的相关文章

随机推荐

  • JSP 分页(二) ----异步一览列表和分页

    前面写的那个分页主要用于前台网页一览列表的展示 xff0c 每次点击下一页时将要刷新整个页面的数据 xff0c 下面的这个分页将克服上面的分页的问题 xff0c 只刷新页面中一部分代码 xff0c 比方说页面的某一个div层 xff0c 其
  • Hibernate SQLQuery 返回List<Bean>结果集

    Hibernate hql查询语句 xff1a list 61 getHibernateTemplate getSessionFactory getCurrentSession createQuery hql list Hibernate
  • Mysql时间戳转Java时间戳

    MySQL 时间戳和Java返回的时间戳是不一样的 例如 当前时间是 2014 08 04 10 42 55 204000 使用mysql时间戳函数UNIX TIMESTAMP 返回的结果为 1407120175 204000 使用Java
  • java实现统计输入一行string中统计其中各个字符出现的次数

    方法 xff1a 通过数组ArrayList实现 代码包括两个文件 1 保存统计的字符和其出现次数的对象1 package codeSHP public class Object01 char c int count public Obje
  • 【QT】如何给QT程序设置图标和软件名

    在MainWindow的构造函数中使用以下两个方法即可设置软件名和图标 span class token keyword this span span class token operator gt span span class toke
  • Java List<Bean> 分组转换

    1 什么是List lt Bean gt 分组转换 请看如下数据结构 xff0c getter and setter 方法省略 待分组数据结构 public class CommuneResourceBean implements java
  • DB2递归函数返回TABLE对象 和 Mysql递归函数返回Varchar类型

    DB2数据库中 1 使用TABLE对象构建临时表 values 34 1 34 34 a 34 34 2 34 b 34 34 3 34 34 c 34 34 4 34 34 d 34 34 e 34 34 f 34 select from
  • SHELL命令(180701)

    shell命令 1 关机halt reboot poweroff 2 帮助手册 man 3 目录 xff0c 文件操作 xff1a Linux采用的文件是ext3 xff08 树形结构 xff09 3 1路径表示法 绝对路径 xff1a x
  • RabbitMQ——调优参数

    前言 前面几篇文章讲述了rabbitmq消息存储的相关原理 xff0c 也提到了有些参数可以进行配置 这些配置参数的微调在不同的场景中会有不同的效果 本文对其中一些参数进行说明 xff0c 同时以实测数据结合性能分析工具进行剖析 相关参数说
  • Python之turtle.circle()函数理解

    turtle circle 函数 定义 xff1a turtle circle radius extent 61 None 作用 xff1a 根据半径radius绘制extent角度的弧形 参数 xff1a radius xff1a 弧形半
  • 高精度乘法(C++实现)

    算法分析 1 C 43 43 不支持大数运算 xff0c 故而引入高精度算法 2 高精度乘法将大数以字符串形式输入 xff0c 然后拆分转换为一位一位的整数 xff0c 之后按照小学的竖式运算方法完成编码 xff08 注意 xff1a 字符
  • 在RStudio中安装packages时的“... install from sources ...”问题解决方法

    问题描述 在RStudio中安装packages时出现弹窗提示 xff1a Do you want to install from sources the packages which need compilation 解决办法 选择 NO
  • 排列组合之插板法

    算法解析 插板法的模型 xff1a m个相同的元素 xff0c 分给n个不同的空间里 xff0c 每个空间至少1个 xff0c 有多少种方法 xff1f O 表示元素 xff0c 表示隔板 xff0c xff0d 表示间隔 xff0c 如果
  • cin.getline() 函数用法

    函数用法 接收一个字符串并输出 xff08 可含空格 xff09 参数详解 1 cin getline 函数的完整形式有三个参数 xff1a cin getline 字符数组名 字符个数 结束标志 注意 xff1a 若指定参数 字符个数 为
  • Matlab以分数形式显示运算结果并输出

    问题描述 已知矩阵P的内容如下 xff1a 1 3 1 3 1 3 0 1 2 1 2 0 0 1 4 1 4 0 1 2 0 1 2 0 1 2 利用Matlab编程求P P的值 xff0c 并以分数形式显示运算结果 程序代码 forma
  • Visual Studio Code 常用快捷键

    功能快捷键跳转到定义F12往回跳转Ctrl 43 Alt 43 往前跳转Ctrl 43 Shift 43 注释 取消注释Ctrl 43 搜索Ctrl 43 F替换Ctrl 43 H在文件中搜索Ctrl 43 Shift 43 F变量重命名F
  • LaTeX中保留字符 # $ % ^ & _ { } \ 的输入方法

    LaTeX保留字符 常见的LaTeX保留字符有 xff1a amp backslash 在 LaTeX 中输入它们的命令是 xff1a documentclass UTF8 article usepackage ctex begin doc
  • 蓝桥杯:长草 ← DFS

    题目来源 https www lanqiao cn problems 149 learning 问题描述 小明有一块空地 xff0c 他将这块空地划分为 n 行 m 列的小块 xff0c 每行和每列的长度都为 1 小明选了其中的一些小块空地
  • 利用数组模拟栈,实现逆序输出。

    利用STL stack实现逆序输出的代码 在算法竞赛中 xff0c 利用STL stack实现逆序输出 xff0c 特别好理解 STL stack 的官方帮助文档详见 xff1a https cplusplus com reference
  • 算法竞赛中,sort()函数的常见用法。

    知识点 虽然我们已经学习了诸如快速排序 桶排序 基数排序 插入排序 选择排序等众多的排序算法 xff0c 但在算法竞赛中 xff0c 如需要进行排序 xff0c 我们一般 不会去重复造轮子 xff0c 即去实现某种排序算法后再使用 xff0