洛谷 P1177 【模板】快速排序 【快速排序/multiset排序】
题目描述
利用快速排序算法将读入的N个数从小到大排序后输出。
快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)
输入输出格式
输入格式:
输入文件sort.in的第1行为一个正整数N,第2行包含N个空格隔开的正整数a[i],为你需要进行排序的数,数据保证了A[i]不超过1000000000。
输出格式:
输出文件sort.out将给定的N个数从小到大输出,数之间空格隔开,行末换行且无空格。
输入输出样例
说明
对于20%的数据,有N≤1000;
对于100%的数据,有N≤100000。
【代码】:
std::ios::sync_with_stdio(false);
std::cin.tie(0);//cin优化
#include<bits/stdc++.h>
using namespace std;
int a[];//因为输入数的最大值为十万。
void qsort(int left,int right)//从哪里开始搜索,又搜索到哪里
{
if(left==right)return;//如果互相等于就结束
int mid=a[(left+right)/];//取中间的值
int i=left;//i代替左边
int j=right;//j代替右边
while(i<=j)//i从左边开始找
{
while(a[i]<mid)i++;//找到比中间数小的
while(a[j]>mid)j--;//大的
if(i<=j)//要写!在这个循环结束之前我们无法判断
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;j--;
}//交换 }
if(left<j)qsort(left,j);//那么一次循环不够,因为已经保证j之后的会由下一个递归结束。所以这个只需循环前面就可以了。
if(i<right)qsort(i,right);//循环后面的。
return;//结束了
}
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie();
int n;
cin>>n;//个数
for(int i=;i<n;i++)cin>>a[i];//输入
qsort(,n-);//循环,是从零开始循环的
for(int i=;i<n;i++)cout<<a[i]<<" ";//输出
cout<<endl;//结束。
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset<int>sort;//新建一个红黑树
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
int a;
cin>>a;
sort.insert(a);//将数据插入红黑树
}
set<int>::iterator it;
for(it=sort.begin();it!=sort.end();it++)
cout << *it<<' ';//遍历输出红黑树,即排序结果
cout<< endl;
return ;
}
2
洛谷 P1177 【模板】快速排序 【快速排序/multiset排序】的更多相关文章
- 洛谷P3373 [模板]线段树 2(区间增减.乘 区间求和)
To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格 ...
- 洛谷 P1177 【模板】快速排序【13种排序模版】
P1177 [模板]快速排序 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出. 快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成.( ...
- 洛谷 P1177 【模板】快速排序(排序算法整理)
P1177 [模板]快速排序 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出. 快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成.( ...
- 洛谷——P1177 【模板】快速排序
P1177 [模板]快速排序. 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出. 快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成. ...
- 【AC自动机】洛谷三道模板题
[题目链接] https://www.luogu.org/problem/P3808 [题意] 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. [题解] 不再介绍基础知识了,就是裸的模 ...
- 洛谷-P5357-【模板】AC自动机(二次加强版)
题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,还是要解决跳fail边产生的重复访问,但 ...
- 洛谷P3375 [模板]KMP字符串匹配
To 洛谷.3375 KMP字符串匹配 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.如果 ...
- LCT总结——概念篇+洛谷P3690[模板]Link Cut Tree(动态树)(LCT,Splay)
为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--应用篇戳这里 概念.性质简述 首先介绍一下链剖分的概念(感谢laofu的讲课) 链剖分,是指一类 ...
- 洛谷.1919.[模板]A*B Problem升级版(FFT)
题目链接:洛谷.BZOJ2179 //将乘数拆成 a0*10^n + a1*10^(n-1) + ... + a_n-1的形式 //可以发现多项式乘法就模拟了竖式乘法 所以用FFT即可 注意处理进位 ...
- 洛谷.3803.[模板]多项式乘法(FFT)
题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #inclu ...
随机推荐
- 大步小步算法模板题, poj2417
大步小步模板 (hash稍微有一点麻烦, poj不支持C++11略坑) #include <iostream> #include <vector> #include <c ...
- 洛谷 P2611 [ZJOI2012]小蓝的好友 解题报告
P2611 [ZJOI2012]小蓝的好友 题目描述 终于到达了这次选拔赛的最后一题,想必你已经厌倦了小蓝和小白的故事,为了回馈各位比赛选手,此题的主角是贯穿这次比赛的关键人物--小蓝的好友. 在帮小 ...
- 【BZOJ 3772】精神污染 主席树+欧拉序
这道题的内存…………………真·精神污染……….. 这道题的思路很明了,我们就是要找每一个路径包含了多少其他路径那么就是找,有多少路径的左右端点都在这条路径上,对于每一条路径,我们随便选定一个端点作为第 ...
- 7月18号day10总结
今天学习过程和小结 今天学会了用git从GitHub上克隆代码然后打包成jar包,然后在idea程序中引入这个jar包的依赖来使用jar包中的程序. 通过这个中的网址: 在Git Bash Here中 ...
- 修改select样式,vue select
<style> .selectbox{ width: 200px; display: inline-block; overflow-x: hidden; height: 28px; lin ...
- vue遇到的坑(一)——数组更新
最近在项目中遇到个问题,数组已经更新了,但是页面中的DOM并没有触发变化.我一直以来的想法就是: 既然vue实现的实时数据双向绑定,那么在model层发生了变化之后为什么就没有在view层更新呢? 在 ...
- python实现多个文件的分发
之前写的脚本只能分发一个配置,每次分发多个配置总要执行很多次,很不爽,于是就有了这个脚本 from multiprocessing import Process import paramiko imp ...
- sender的作用
https://www.evernote.com/shard/s227/sh/c2441a07-6b7e-4659-8452-9f768ee9cc66/73a115ed352421e10629 ...
- bootstrap——集合
1.<nav class="navbar navbar-inverse"> inverse,反色,原导航条为白色,加-inverse后改为黑色 2.data-tog ...
- GCC编译安装
1. 安装静态库,如果没有安装静态库,后面编译不会通过: yum install glibc-static libstdc++-static -y 2. 下载GCCxxx.tat.gz: wget h ...