这恐怕是一道 坑最多 最经典 的题目了。

这道题有两种解题方法:

1.自己写个排序函数

这里我们用最最最最常用的快速排序:

#include <iostream>
#define ll long long
using namespace std;

ll n,a[100005];

//定义一个交换函数
template <class Ty>
void q_swap(Ty &a,Ty &b){
    Ty x=a;
    a=b; b=x;
}
void q_sort(int _a,int _b){
    if(_a>_b) return;  //避免越界

    int mid=a[_a]; //得到基准数
    int i=_a,j=_b;        //复制
    while(i!=j){        //判断是否重合
        while(a[i]<mid) i++;  //遍历
        while(a[j]>mid) j--;
        if(i<j)
            q_swap<ll>(a[i],a[j]); //调用交换函数
    }
    q_sort(_a,i-1);   //向左边递归
    q_sort(i+1,_b);   //向右边递归
}
int main() {
    ll i;

    cin >> n;
    for(i=0;i<n;i++) cin >> a[i];

    //调用函数执行排序
    q_sort(0,n-1);

    for(i=0;i<n;i++) cout << a[i] << ' ';
    return 0;
}

2.用C++自带排序函数

STL大法好,这想必大家都知道。

C++的STL库中自带了一个排序函数:sort

调用方法:sort(起始地址, 结束地址);

头文件:algorithm

代码:

#include <iostream>
#include <algorithm>   //sort函数的头文件
#define ll long long
using namespace std;

ll n,a[100005];

int main() {
    ll i;

    cin >> n;
    for(i=0;i<n;i++) cin >> a[i];

    sort(a,a+n);   //直接排序

    for(i=0;i<n;i++) cout << a[i] << ' ';
    return 0;
}

P1177排序题解的更多相关文章

  1. 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)

    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...

  2. 【题解】 [HEOI2016]排序题解 (二分答案,线段树)

    题目描述 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行 ...

  3. [SDOI2015]排序 题解 (搜索)

    Description 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中 ...

  4. HDU 1106 排序 题解

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  5. BZOJ3990:[SDOI2015]排序——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3990 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作 ...

  6. BZOJ4552:[HEOI2016/TJOI2016]排序——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4552 https://www.luogu.org/problemnew/show/P2824 在2 ...

  7. 洛谷 P1786 帮贡排序 题解

    P1786 帮贡排序 题目背景 在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 目前 ...

  8. Leetcode 1329. 将矩阵按对角线排序 题解

    首先遍历对角线元素,顺序为: 先从第一列的最后一行到第一行 然后从第一行的第一列到最后一列 遍历的同时记录坐标和数值,对数值进行排序,然后坐标顺序放回. class Solution: def dia ...

  9. LuoguP7714 「EZEC-10」排列排序 题解

    Content 给定一个 \(1\sim n\) 的一个排列 \(p\),你每次可以选择一个区间 \([l,r]\) 并花费 \(r-l+1\) 的代价将下标在这个区间内的所有数升序排序,求使得排列 ...

随机推荐

  1. PHPMailer发送邮件遇坑小记

    一:phpmailer发送邮件成功了 数据库发送状态也更改 但是用户就是没收到邮件. 出现原因:发送邮件太多 导致邮箱服务器被腾讯封了 发送的邮件统统进入了邮件服务器的草稿箱里. 解决方案: 重新修改 ...

  2. unserialize():Error at offset 0 of 96 bytes是什么意思

    数据库有个列是数组序列化后存到数据库的,取出来得反序列化, php想要把数组保存到数据库里,有两种序列化方式,分别是: //php系统序列化 $b = serialize($a);    //序列化数 ...

  3. 使用ESLint+Prettier来统一前端代码风格

    Prettier 简单使用 ESLint 与 Prettier配合使用 首先肯定是需要安装 prettier ,并且你的项目中已经使用了 ESLint ,有 eslintrc.js 配置文件. npm ...

  4. K3标准产品的BOS单据发布至自定义模块

    在自定义模块 下先随便发布一张单据,然后后台更新数据表. select * from icclasstype where fname_chs like '付款申请单%'   --查询表单的ID upd ...

  5. 关于List比较好玩的操作

    作为Java大家庭中的集合类框架,List应该是平时开发中最常用的,可能有这种需求,当集合中的某些元素符合一定条件时,想要删除这个元素.如: public class ListTest { publi ...

  6. 1、安装gitlab

    1.安装Gitlab Gitlab分为社区版和企业版(收费),这里安装的是ce社区版本 方式一: Gitlab官方有提供好的rpm包仓库,所以采用yum安装即可. [root@localhost ~] ...

  7. 第一次个人编程作业&#183;寒假

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/SE/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy ...

  8. 手机内存卡RAW无法格式化的解决办法

    突然出现这个问题,这是麻烦: 网上找了各种办法:什么软件修复,disk等修复,创建新磁盘,新扇到,win自动修复啊:开始----运行框中输入      :convert X: /fs:FAT(X为电脑 ...

  9. mybatis(五):源码分析 - sqlsource创建流程

  10. IDEA编写shell脚本并运行

    1.去官网下载IDEA开发工具 https://www.jetbrains.com/idea/ 2.打开IDEA并安装bashsupport插件 3.安装完插件重启IDEA 4.下载git工具 htt ...