c++STL之sort排序
排序算法为竞赛中最常用的算法之一,我们可以利用C++自带的库函数进行排序。
————《信息学奥赛一本通》
#include<iostream>
#include<algorithm> int main()
{
int a[];
int n;
std::cin>>n;
for(int i=;i<n;i++)
{
std::cin>>a[n];//输入
}
std::sort(a+,a+n);//sort 排序 含义:升序排序a数组的第0位到a数组的第n位
for(int i=;i<n;i++)
{
std::cout<<a[n];//输出
}
return ;
}
以上是最最简单的一个用sort排序的程序
读者可能有疑问了,难道sort只能升序排序吗?
其实不然。sort默认确实是升序排序,不过你可以自己定义排序规则,比如说下面这样:
#include<iostream>
#include<algorithm>
int aa(int x,int y) 自己定义的排序规则,可以实现降序排序
{
if(x>y) return ;
else return ;
}
int main()
{
int a[];
int n;
std::cin>>n;
for(int i=;i<n;i++)
{
std::cin>>a[n];
}
std::sort(a+,a+n,aa);//排序a数组的第0位到第n位,用自己定义的aa排序规则
for(int i=;i<n;i++)
{
std::cout<<a[n];
}
return ;
}
这里定义的aa函数,就是你进行sort排序时的规则,这里这个规则可以随你写,比如说按照其他特征排序,如:关键字等等,而且其中的排序规则可以有多个,比如说下面这个:
int aa(const student & a,const student &b)
{
if(a.score>b.score) return ;
if(a.score<b.score) return ;
if(a.name<b.name) return ;
}
这个是对一个结构体中的数据进行排序,排序的规则是按照结构体中score的大小降序排序,如果两个score相等,就按照name的字典序升序排序,相信大家动能看得懂。
下面贴出一个例题:
Combination
(iknowss.cpp)
Description
有 n 个正整数,伟大的中国人民要把它们连接成一排,形成一个最大的integer。
举个栗子:n=3 时,3 个整数 1,3,4 联接成的最大整数为:431 又如:n=4 时,4 个整数 7,13,4,246 联接成的最大整数为:7424613
Input
N后跟n个正整数。
Output
连成的最大数
Hint
对于前7个数据,n<=100000
对于第8个数据,n<=10000
对于第9个数据,n<=1000
对于第10个数据,n<=100
对于所有数据,integer<=10^10
数据随机,略弱=-=
(以上又是二货学长改自noip题)
这个题最简单的方法就是用字符串格式输入的这几个数,按照字符串字典序sort,再降序输出就可以了(为什么这次学长出的题这么水。。。于是我就有时间多讲了点sort。。。)
以下贴出源代码:
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int aa(string x,string y)
{
if(x>y) return ;
else return ;
}
int main()
{
freopen("iknowss.in","r",stdin);
freopen("iknowss.out","w",stdout);
int n;
string zong[];
cin>>n;
for(int i=;i<n;i++)
{
string zhong;
cin>>zhong;
zong[i]=zhong;
}
sort(zong+,zong+n,aa);
for(int i=;i<n;i++)
{
cout<<zong[i];
}
return ;
}
完。
c++STL之sort排序的更多相关文章
- STL vector+sort排序和multiset/multimap排序比较
由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...
- STL源代码分析——STL算法sort排序算法
前言 因为在前文的<STL算法剖析>中,源代码剖析许多,不方便学习,也不方便以后复习.这里把这些算法进行归类,对他们单独的源代码剖析进行解说.本文介绍的STL算法中的sort排序算法,SG ...
- STL中sort排序算法第三个参数_Compare的实现本质
关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数. 重载运算符 全局的比较函数 函数对象 我认为从实现方式看,重 ...
- STL之 sort排序与检索(2019.1.18)
1.作用对象:数组 a[n] 头文件:#include<algorithm> 内容:sort(a,a+n) 功能:进行升序排序 内容:lower_bound(a,a+n,x) 功能:找到 ...
- [转] C++的STL库,vector sort排序时间复杂度 及常见容器比较
http://www.169it.com/article/3215620760.html http://www.cnblogs.com/sharpfeng/archive/2012/09/18/269 ...
- 使用STL库sort函数对vector进行排序
使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 #include <stdio.h> #include <vector> ...
- 标准模板库(STL)学习指南之sort排序
对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...
- STL 源码分析《1》---- list 归并排序的 迭代版本, 神奇的 STL list sort
最近在看 侯捷的 STL源码分析,发现了以下的这个list 排序算法,乍眼看去,实在难以看出它是归并排序. 平常大家写归并排序,通常写的是 递归版本..为了效率的考虑,STL库 给出了如下的 归并排序 ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
随机推荐
- 第四课 Grid Control实验 安装JCH2库并且配置好监听,关键步骤和结果截图
--从OCM 虚拟机中,克隆了安装oracle之前的状态 配置网络: [root@localhost network-scripts]# ifup ifcfg-eth0 [root@localho ...
- 通过XSLT转换XML
Hello,every body.又与大家见面了,哈哈.今天我与大家分享一下XSLT,XSL,XML,XPath.因为项目中有些功能用到了XSLT.XML等技术.所以今天好好研究了一下这几个方面的技术 ...
- linux 系统下java开发环境的配置
在安装之前,确保你的linux系统下有 jdk,jboss等相关软件 一.配置JDK环境变量 步骤: 解压缩JDK文件: unzip jdk1.6.0_31.zip 目录下显示文件夹jdk1.6.0_ ...
- 13年山东省赛 Boring Counting(离线树状数组or主席树+二分or划分树+二分)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud 2224: Boring Counting Time Limit: 3 Sec ...
- (原)ubuntu上安装dlib
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5652791.html 参考网址: http://stackoverflow.com/questions ...
- php静态属性和静态方法
php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. · ...
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- sql 数据库优化
数据库优化: 1. 显示磁盘秘密: DBCC SHOWCONTIG(B2B_ZRate) 清理磁盘密度 DBCC DBREINDEX(B2B_ZRate) 2.
- [分享]我的LABVIEW快速开发串口测试软件实例
LABVIEW是美国国家仪器公司(National Instruments,简称NI)的创新产品,它允许编程人员使用图形方式来进行编程,摒弃了艰涩难懂的代码,只需要拖动相应图形控件然后连线,进行简单的 ...
- Compiler Principles 语法分析
语法分析的两种思维方式:1:自顶向下分析 :从语法树的根部推下来一直推到需要确认的终结符号串为止:就是为了找到一个符号串的最左推导 自顶向下分析,因为文法有些是以非终结符开头的另外文法中还可能含有右部 ...