ACM_ICPC竞赛中sort函数的简要介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Electronic Technology & Software Engineering 电子技术与软件工程• 227Program Design •

程序设计【关键词】sort 函数 程序设计

1 sort函数的介绍及优点

sort 函数是STL 中用于对给定区间

进行排序的函数,所在头文件是#include

。主要原理是快速排序,但又不是

简单的快速排序,它还结合了插入排序和堆排

序,根据需要排序对象的不同情况,自动选用

合适的排序方法。所以虽然理论上sort 函数和

快速排序的复杂度都是O(n*logn),但在实际

应用中,sort 函数比快速排序的效率更高,实

用方法简单,因此更加实用。

2 sort函数的使用方法

sort 函数有三个参数

(1)要排序数组的起始地址。

(2)要排序数组的结束地址,即最后一

个要排序地址的下一个地址。

(3)排序方法,可以是从大到小,也可

以自定义,也可以不写,如果不写,默认的排

序方式是从小到大排序。

sort 函数使用模板是:

sort(start,end,cmp);

对区间[first,last)根据cmp 的方式进行排

序。

3 sort函数的用法举例

3.1 直接使用

整型默认为从小到大排序,字符型根据

ASCII 码值进行排序。

int a[N];

sort(a+first,a+last);

N 为整型常数,first 为起始地址,last 为

结束地址。

3.2 自定义排序ACM_ICPC 竞赛中sort 函数的简要介绍

文/焦静颐 崔驭 贾子璇

3.2.1 自定义比较函数int a[N];bool cmp(int x,int y){return x>y;}sort(a+first,a+last,cmp);系统默认为x>y 返回true ,故程序是从大到小排序。3.2.2 重载比较运算符这种方法用于结构体中。struct point {int a,b;}e[N];bool operator<(const point& x,const point& y){if(x.a==y.a) return x.by.a;}sort(e+first,e+last);根据成员a 的数值由大到小排序,当a 的数值相同时,根据成员b 的数值由小到大排序。

4 结束语sort 函数在使用上带来极大便利,因为高效率,使用灵活的特点,无论是在日常开发中还是算法竞赛中,sort 函数都能发挥很大的作用。本文介绍了sort 的使用方法,只要加以练习,就可以将sort 函数更好的应用。掌握好sort 函数对学生学习其他STL 函数也有很大帮助,可以提高学生的编程能力。参考文献[1]Nicolai M.Josuttis.C++标准程序库[M]. 华中科技大学出版社,2002.[2]刘汝佳.算法竞赛入门经典(第二版)[M]. 清华大学出版社,2014.作者简介焦静颐(2000-),女,天津市人。

大学本科在读。主要研究方向为计算机类。作者单位河北农业大学信息科学与技术学院 河北省保定市 071001

相关文档
最新文档