c++ sort 转载
原文链接https://blog.csdn.net/Architect_chaser/article/details/88322605
从前学习C时,每次排序算法都要自己书写,而且容易书写的算法效率并不高(时间复杂度有点高),效率高的排序算法写起来又太复杂。现在我们终于学到了C++,C++的algorithm头文件里包含了排序算法,最令人开心的是,这种sort()函数的效率还非常高(实质按照排序元素个数选择不同排序方法),今天我们就来学习这种简单又高效的排序函数。
sort()函数给整型数组排序
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[11]={0,1,2,13,45,2,33,1,6,78,4};sort(a,a+11);for(int i=0;i<11;i++){cout<<a[i]<<endl;}return 0;
}
当当,是不是很简单,值得一提的是sort(a,a+11),表明要a[0]一直到a[10]的所有元素参与排序。所以,我们还可以截取部分元素参与排序。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[11]={0,1,2,13,45,2,33,1,6,78,4};sort(a+4,a+11);for(int i=0;i<11;i++){cout<<a[i]<<endl;}return 0;
}
这样前面四个元素a[0] a[1] a[2] a[3]就不参与排序了.
深入理解sort函数参数含义
其他的排序方式
刚才我们不写排序规则函数,sort函数默认从小到大排序,现在我们想从大到小排序怎么办呢?
其实也很简单,实现代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{return a>b;
}
int main()
{int a[11]={0,1,2,13,45,2,33,1,6,78,4};sort(a,a+11,cmp);for(int i=0;i<11;i++){cout<<a[i]<<endl;}return 0;
}
bool cmp(int a,int b)
{return a>b;
}
并且在调用sort的时候第三个参数写cmp就行了。和刚才同样的道理,sort(a,a+11,cmp)是给a[0]到a[10]排序。
string类也可以用sort排序
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool cmp(string a,string b)
{return a>b;
}
int main()
{string a[4]={"hhhhh","heheheh","xxxxxx","kkkkkk"};sort(a,a+4,cmp);for(int i=0;i<4;i++)cout<<a[i]<<endl;return 0;
}
c++ sort 转载相关推荐
- linux的管道 |和grep命令以及一些其他命令(diff,echo,cat,date,time,wc,which,whereis,gzip,zcat,unzip,sort)...
linux提供管道符号"|",作用是命令1的输出内容作为命令2的输入内容.通常与grep命令一起使用. 格式:命令1 |命令2 grep命令:全称为global regular e ...
- 为什么map对象不能使用stl中的sort函数
STL所提供的各式各样算法中,sort()是最复杂最庞大的一个.这个算法接受两个RandomAccestlerators(随机存取迭代器),然后将区间内的所有元素以渐增方式由小到大重新排列.第二个版本 ...
- 排序陷阱 List.Sort Linq.OrderBy
部分内容摘自:http://www.th7.cn/Program/net/201511/692766.shtml C#框架里面主要提供了两种排序方式:Array.Sort Linq.Orderby. ...
- 转载: 8天学通MongoDB——第三天 细说高级操作
今天跟大家分享一下MongoDB中比较好玩的知识,主要包括:聚合,游标. 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. &l ...
- springDatasolr 排序
1 String sortValue = (String) searchMap.get("sort");// ASC DESC 2 String sortField = (Stri ...
- /scripts/checkkconfigsymbols.sh
#!/bin/sh # Find Kconfig variables used in source code but never defined in Kconfig # Copyright (C) ...
- Vue之动态class写法总结
对象方法 最简单的绑定 :class="{ 'active': isActive }" 判断是否绑定一个active :class="{'active':isActive ...
- mysql 升序 字段值为NULL 排在后面
select * from yryz_products_t order by isnull(sort),sort; 转载于:https://www.cnblogs.com/austinspark-je ...
- Perl的输出:print、say和printf、sprintf
print.printf和say都可以输出信息.print和say类似,print不自带换行符,say自带换行符,但要使用say,必须写use语句use 5.010;,printf像C语言的print ...
最新文章
- 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
- Python 之Re模块(正则表达式)
- MySql遇到字段中有空格
- struts2 kindeditor teatarea拿不到值问题。
- AE合成自动智能剪裁脚本:Auto Crop for Mac
- 忽悠CTO搞中台,把自己饭碗都搞砸了
- javascript Control flow(控制语句)
- 深度探索Qt窗口系统——布局篇
- python线程监控_Python多线程的事件监控
- 卡巴斯基2009离线升级包制作方法
- Xcode5 symbolicatecrash文件路径
- HTML+CSS+JavaScript实现旅游网站官网
- Robotium-基础理论介绍
- 总体均值的区间估计和习题
- 常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)
- 小生意同样能赚大钱,卖豆芽都能一年存20多万?你怎么看?
- 实战篇--优惠券秒杀
- C#图形界面汉诺塔Hanoi
- 当有人推荐你读什么书时你是属于哪一种
- 语音邮件 voice mail 概述