C++之sort函数
C++中的sort函数可以直接完美地取代Pas中十多行的快排代码,在这里,总结一下sort函数的用法:
首先是不加参数的情况:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n,a[10000];
scanf("%d",&n);
for (int i=0; i<n; i++) scanf("%d",&a[i]);
sort(a,a+n);
for (int i=0; i<n; i++) printf("%d ",a[i]);
return 0;
}
排序的结果是从小到大的,那么如果需要从大到小的话,就要用上参数了:
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a,int b) {return a>b;};
int main()
{
int n,a[10000];
scanf("%d",&n);
for (int i=0; i<n; i++) scanf("%d",&a[i]);
sort(a,a+n,cmp);
for (int i=0; i<n; i++) printf("%d ",a[i]);
return 0;
}
而且,这个函数还可以实现和快排一样的功能,比方说区间排序,只要将sort的前两位稍作修改就可以了。
还有就是关于有参数的排序,其实方法也是相同的,就将HDU 1234作为例子,贴上代码:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct node
{
string name,begin,end;
}a[1000];
int cmp1(node a,node b) { return a.begin<b.begin;}
int cmp2(node a,node b) { return a.end>b.end;}
int main()
{
int n,m,i;
cin>>n;
while(n--)
{
cin>>m;
for(i=0;i<m;i++)cin>>a[i].name>>a[i].begin>>a[i].end;
sort(a,a+m,cmp1);
cout<<a[0].name<<' ';
sort(a,a+m,cmp2);
cout<<a[0].name<<endl;
}
return 0;
}
需要注意的是要开算法库和namespace。
C++之sort函数的更多相关文章
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- 神奇的sort()函数
今天来谈一谈sort()函数,sort() 方法用于对数组的元素进行排序,用法为arrayObject.sort(sortby):括号中的为可选参数,准确来说应该是一个函数,这个函数用来规定排序方法, ...
- qsort函数、sort函数【转】
http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...
- C中的qsort函数和C++中的sort函数的理解与使用
一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...
- python 中的sort 和java中的Collections.sort()函数的使用
x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...
- sort函数用法
原文链接:http://blog.csdn.net/csust_acm/article/details/7326418 sort函数的用法 做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己 ...
- Perl Sort函数用法总结和使用实例
一) sort函数用法 sort LISTsort BLOCK LISTsort SUBNAME LIST sort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNA ...
- C++ sort函数
(一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于 ...
- 使用STL库sort函数对vector进行排序
使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 #include <stdio.h> #include <vector> ...
- C++ algorithm 里的sort函数应用
MSDN中的定义: template<class RanIt> void sort(RanIt first, RanIt last); //--> 1)template< ...
随机推荐
- JQuery实战学习--在dreamweaver 8中配置Jquery自动提示
最近在学习jQuery,然后在网上找到了自动提示的方法,记之. 1,首先下载jQuery_API.mxp这个扩展文件. 2,打开DW,点击命令-->扩展管理-->文件-->安装扩展, ...
- shell实现死循环
参考自http://codingstandards.iteye.com/blog/780524 .while true do command; done .while : do command; do ...
- JAVA并发,线程工厂及自定义线程池
package com.xt.thinks21_2; import java.util.concurrent.ExecutorService; import java.util.concurrent. ...
- PADS LAYOUT到底怎么走线
PADS LAYOUT走线,是不是转角要自己手动慢慢转角啊?不能像PROTEL中那样自动转角吗 自己手动转角老是转不好,出现许多线头,对不齐,是不是我操作有误啊 走线的过程中,可以试试这个,切换端点. ...
- Tomcat远程调试和加入JMS(转)
1.Tomcat 加入远程调试,在catalina.bat : SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xr ...
- iPhone 5s网络钓鱼邮件,和苹果发布会同步亮相
正如预期的一样,网络犯罪分子会利用Apple最新发表的iPhone 5s消息,几乎在苹果的新产品发表会同时,这个网络钓鱼(Phishing)信件开始流传.此次,趋势科技病毒防治中心 Trend Lab ...
- oracle 11g RAC Grid Infrastructure
grid infrastructure 软件介质下载: http://www.oracle.com/technetwork/database/database-technologies/cluster ...
- Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode
Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode Element DOM Tree jQuery pl ...
- jquery $.ajax $.get $.post的区别
$.ajax 是 jQuery 底层 AJAX 实现,$.ajax是一种通用的底层封装,$.ajax()请求数据之后,则需要使用回调函数,有beforeSend.error.dataFilter.su ...
- 关于如何使用three.js的小教程<一>
昨天看了看three.js这个东西,身为一个3D引擎,他还是非常强大的.官网上有个tutorial讲的不甚具体.http://aerotwist.com/tutorials/getting-start ...