排序算法为竞赛中最常用的算法之一,我们可以利用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排序的更多相关文章

  1. STL vector+sort排序和multiset/multimap排序比较

    由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...

  2. STL源代码分析——STL算法sort排序算法

    前言 因为在前文的<STL算法剖析>中,源代码剖析许多,不方便学习,也不方便以后复习.这里把这些算法进行归类,对他们单独的源代码剖析进行解说.本文介绍的STL算法中的sort排序算法,SG ...

  3. STL中sort排序算法第三个参数_Compare的实现本质

    关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数. 重载运算符 全局的比较函数 函数对象 我认为从实现方式看,重 ...

  4. STL之 sort排序与检索(2019.1.18)

    1.作用对象:数组  a[n] 头文件:#include<algorithm> 内容:sort(a,a+n) 功能:进行升序排序 内容:lower_bound(a,a+n,x) 功能:找到 ...

  5. [转] C++的STL库,vector sort排序时间复杂度 及常见容器比较

    http://www.169it.com/article/3215620760.html http://www.cnblogs.com/sharpfeng/archive/2012/09/18/269 ...

  6. 使用STL库sort函数对vector进行排序

    使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 #include <stdio.h> #include <vector> ...

  7. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  8. STL 源码分析《1》---- list 归并排序的 迭代版本, 神奇的 STL list sort

    最近在看 侯捷的 STL源码分析,发现了以下的这个list 排序算法,乍眼看去,实在难以看出它是归并排序. 平常大家写归并排序,通常写的是 递归版本..为了效率的考虑,STL库 给出了如下的 归并排序 ...

  9. 对vector等STL标准容器的排序操作

    [+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...

随机推荐

  1. OpenCV——视频颜色识别

    #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace c ...

  2. redis学习研究--基础知识

    以下内容多为摘抄转载: 1. Redis 是什么 Redis是一个开源的使用ANSI C语言编写的基于内存的key/value存储系统,与memcache类似,但它支持的value类型更多,包括:字符 ...

  3. PHP设置http头信息

    <?PHP function https($num) { $http = array ( 100 => "HTTP/1.1 100 Continue", 101 =&g ...

  4. JuPyter(IPython) Notebook中通过pip安装第三方Python Module

    JuPyter(IPython) Notebooks中使用pip安装Python的模块 刚开始接触JuPyter Notebook的时候觉得这是个不错的写技术博客的工具,可以很直观的把代码和结果结合在 ...

  5. 【00】why集搜客网络爬虫?

    与各种大企业相比,大数据对于没有数据资源的个体而言是奢侈品. 然而在“互联网思维”.“互联网+”引领下,我们应当勇于实践和颠覆传统,将数据平民化. 不管你是财经.金融.经管.社科专业的技术小白,正在做 ...

  6. Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面

    这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣.当然也不是拿来就能用的,需要自己写登陆页面的模板, ...

  7. bat加载和分离VHD

    VHD: vhd:虚拟磁盘格式 [详看 百科 ] 应用: 建立VHD文件,把系统装进VHD,然后从VHD启动. 优点: 因为系统在一个文件里,所以有可删,可移动,可快照的优点. VHD装系统方法: 请 ...

  8. Delphi泛型评测(30篇)

    http://www.cnblogs.com/jxgxy/category/216671.html

  9. MFC radio button 绑定变量用法

    我们在对话框中拖动一个radio button控件,然后点击类向导,结果却发现在Member Variables里看不到Radio控件的ID.这是为什么? 2.1 三个Radio Button,ID分 ...

  10. Subsets 解答

    Question Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a su ...