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

这道题有两种解题方法:

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. xampp安装配置比较容易卡住的地方

    xampp作为一款集成建站软件,方便了不少初学的开发者,但是虽然是集成和傻瓜式的安装,还是会遇到一些容易卡壳的地方,这里记录自己觉得一些比较重要的东西. 1.端口问题 如图是我改之后的端口,原来端口为 ...

  2. ArcGIS Server Manager 重置密码

    重置忘记的密码 ArcGIS 10.5 (Windows) | 其他版本 根据以下说明为标识存储中的用户或主站点管理员帐户重置密码. 为标识存储中的用户重置密码 可按照以下步骤为标识存储中的用户重置密 ...

  3. Spring 理解和开始

    1.先看看Spring的历史吧 https://baijiahao.baidu.com/s?id=1620099105315862154&wfr=spider&for=pc 2.Spr ...

  4. 题解 AT4164 【[ABC102A] Multiple of 2 and N】

    首先我们先来回忆一下小学一年级就学过的知识:任何一个偶数都是 \(2\) 的倍数,那么我们就可以分成两种情况考虑:奇数和偶数. 对于偶数,我们可以直接将其输出,因为它必定能被 \(2\) 与它自己整除 ...

  5. Date工具类中CompareTo()

    A<B 结果是-1 A>B 结果是1 A==B 结果是0

  6. nodepad++ | 变成 _

    点击右下角切换

  7. 测试用例与PUCCH

  8. the import javax.jms cannot be resolved问题

    JDK中并没有javax.jms包,你需要一个JMS实现(比如:activemq),并确认相应的jar被包含在CLASSPATH中. http://activemq.apache.org/ 5.5.0 ...

  9. Codeforces 474B. Worms

    It is lunch time for Mole. His friend, Marmot, prepared him a nice game for lunch. Marmot brought Mo ...

  10. 最长公共子串2(LCS2) lg SP1812

    题意:n个字符串(n<=10)求最长公共子串的长度 前置技能点:https://www.cnblogs.com/wenci/p/10432932.html (两个字符串求最长公共子串的长度) 既 ...