- 2
- 0
- 约3.52千字
- 约 6页
- 2016-12-07 发布于重庆
- 举报
sort和qsort
STL 中 sort 函数用法简介
做 ACM 题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的 O(n^2) 排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。 STL 里面有个 sort 函数,可以直接对数组排序,复杂度为 n*log2(n) 。
使用这个函数,需要包含头文件#include algorithm。
这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是 [a,b) 。简单来说,有一个数组 int a[100] ,要对从 a[0] 到 a[99] 的元素进行排序,只要写 sort(a,a+100) 就行了,默认的排序方式是升序。
拿我出的“ AC 的策略”这题来说,需要对数组 t 的第 0 到 len-1 的元素排序,就写 sort(t,t+len);
对向量 v 排序也差不多, sort(v.begin(),v.end());
排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类 string 。
如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是 bool 型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数 cmp
bo
您可能关注的文档
最近下载
- 2026年广东省普通高中学业水平考试生物试卷及答案.doc VIP
- 全国教育科学规划课题申报书:63.《中华优秀传统文化在艺术教育中的传承与发展研究》.docx VIP
- 有效的小学数学教学设计.docx VIP
- 2024-2025学年江苏省常州市高一下学期4月期中质量调研政治试题(解析版).docx VIP
- 高考数学压轴题专项训练:椭圆(解答题压轴题)含答案及解析.pdf VIP
- 金沙江溪洛渡水电站左岸谷肩堆积体边坡监测成果浅析.pdf VIP
- 2026年广东省普通高中学业水平考试地理试卷及答案.doc VIP
- 北师大版数学小升初模拟试卷(各地真题).docx VIP
- 太极创业项目计划书.docx VIP
- 《精密机械设计基础(第二版)》裘祖荣习题参考答案.pdf VIP
原创力文档

文档评论(0)