sort函数用法详解
2024-10-21 05:52:17
用于C++中,对给定区间所有元素进行排序。头文件是#include <algorithm>
sort函数进行快速排序,时间复杂度为n*log2n,比冒泡之类的要省时不少
Sort函数使用模板:
Sort(start,end,排序方法)
1.第一个参数是要排序数组的起始地址
2.第二个参数是数组结束地址的下一位
3.第三个是排序的方法,可不填,默认升序
一般是直接对数组进行排序,例如对数组a[10]排序,sort(a,a+10)就行了。
而sort函数的强大在与cmp函数的使用,即排序方法的使用
一,如何对数组降序排序呢?
bool cmp(int a,int b)
{
return a>b;
//return a>b?true:false;等价
}
然后sort(a,a+10,cmp)就可以降序排序了
二,如何对字符串进行排序呢?
假设创建了字符串数组
bool cmp(string a,string b)
{
return a<b;
}
然后sort(s,s+n,cmp)就可以对很多个字符串进行排序了
三,如何对结构体进行排序呢?
假设自己定义了一个结构体node
有一个node类型的数组node arr[100],想对它进行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b还相同,就按c降序排列。就可以写这样一个比较函数:
以下是代码片段:
struct node
{
int a;
int b;
double c;
}
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a<y.a;
if(x.b!=y.b) return x.b>y.b;
return x.c>y.c;
}
以上就是比较常用的了。
最新文章
- JQ+rotate插件实现图片旋转,兼容IE7+ \ CHROME等浏览器
- SQL 列拆分
- Vue实现商城里面多个商品计算,全选,删除
- 【38】java的集合框架(容器框架)
- Python模块的导入以及软件开发规范
- 解决find命令报错: paths must precede expression
- 使用requests模块保存网络上的图片
- hdu6330 多校3 L 画一个cube
- bzoj2086: [Poi2010]Blocks DP,单调栈
- Java中如何遍历Map对象
- iOS 自定义日志输出
- jQuery 遍历 - eq() 方法 查找当前元素
- BZOJ2039_employ人员雇佣_KEY
- PID控制算法的C语言实现六&#160;抗积分饱和的PID控制算法C语言实现
- Mockjs生成Vue数据表格
- 爬虫——URL模块爬取糗事百科段子
- POJ 3264 Balanced Lineup 【线段树/区间最值差】
- Python之code对象与pyc文件(三)
- Django框架基础知识03-模板变量及模板过滤器
- Python数据类型方法
热门文章
- Asp 6种页面转向方法
- BZOJ 4951 [WF2017]Money for Nothing (决策单调优化DP+分治)
- Oracle与Mysql内嵌游标的使用示例
- js 时间转换
- js中“使用”el表达式
- 人人都能当大厨的语音做菜神器——demo试用
- Java測试覆盖率工具----Cobertura,EclEmma
- .NET 图片解密为BASE64
- JMX学习笔记(一)-MBean
- STL_算法_依据第n个元素排序(nth_element)