近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧!
(一)为什么要用c++标准库里的排序函数
Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!
(二)c++标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
Sort函数使用模板:
Sort(start,end,,排序方法)
下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[10]={9,6,3,8,5,2,7,4,1,0};for(int i=0;i<10;i++)cout<<a[i]<<endl;
sort(a,a+10);for(int i=0;i<10;i++)cout<<a[i]<<endl;return 0;
}
例二
通过上面的例子,会产生疑问:要实现从大到小的排序肿么办?这就如前文所说需要在sort()函数里的第三个参数里做文章了,告诉程序我要从大到小排序!
需要加入一个比较函数 complare(),此函数的实现过程是这样的
bool complare(int a,int b)
{return a>b;
}
这就是告诉程序要实现从大到小的排序的方法!
#include<iostream>
#include<algorithm>
using namespace std;
bool complare(int a,int b)
{return a>b;
}
int main()
{int a[10]={9,6,3,8,5,2,7,4,1,0};for(int i=0;i<10;i++)cout<<a[i]<<endl;sort(a,a+10,complare);//在这里就不需要对complare函数传入参数了,//这是规则for(int i=0;i<10;i++)cout<<a[i]<<endl;return 0;
}
例三:
通过上面例一、二的方法虽然实现了从大到小和从大到小的排序,这样做还是有点麻烦,因为还需要自己编写告诉程序进行何种排序的函数,c++标准库强大的功能完全可以解决这种麻烦。
Sortt函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则
less<数据类型>()//从小到大排序
greater<数据类型>()//从大到小排序
结合本例子,这样的就可以完成你想要的任何一种排序原则了#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[10]={9,6,3,8,5,2,7,4,1,0};for(int i=0;i<10;i++)cout<<a[i]<<endl;
sort(a,a+10,less<int>());for(int i=0;i<10;i++)cout<<a[i]<<endl;return 0;
}#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[10]={9,6,3,8,5,2,7,4,1,0};for(int i=0;i<10;i++)cout<<a[i]<<endl;sort(a,a+10,greater<int>());for(int i=0;i<10;i++)cout<<a[i]<<endl;return 0;
}例四:利用sort函数还可以实现对字符的排序,排序方法大同小异,下面就把程序范例展示一下
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{char a[11]="asdfghjklk";for(int i=0;i<10;i++)cout<<a[i]<<endl;sort(a,a+10,greater<char>());for(int i=0;i<10;i++)cout<<a[i]<<endl;return 0;
}

排序专题之C++中的sort函数调用相关推荐

  1. Linux 中使用 sort 指令分组排序详解

    Linux 中使用 sort 指令分组排序详解 sort 中进行分组排序主要用到的选项为 -k,此文,我们着重于该选项的使用方式,用到的其它选项不做解释,有兴趣的同学可以查看帮助文档 1. 数据准备 ...

  2. 前端开发必备:js中的sort()排序函数

    碎片时间学习一下这个短短的案例技巧,将来开发中肯定会用得上的. javascript中的sort()的用法也有很多种,搜索一下就有很多了,而且都不会有什么问题.但是一下这样写法更简洁易看. <s ...

  3. java中Collections.sort() 排序函数的用法

    java中Collections.sort() 排序函数的用法: 用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** ...

  4. python中的sort排序加换行_python中sort()排序的方法

    python中sort()排序的方法 发布时间:2020-09-01 10:57:52 来源:亿速云 阅读:110 作者:小新 这篇文章主要介绍了python中sort()排序的方法,具有一定借鉴价值 ...

  5. http://www.dewen.net.cn/q/16222/C++排序中的sort函数第三个参数的疑问

    C++排序中的sort函数第三个参数的疑问 唐图 3 票 37 #include<stdio.h> #include<string.h> #include<algorit ...

  6. c++简单排序算法(冒泡、选择以及调用algorithm中的sort函数)

    排序 冒泡排序 定义: 概述: 冒泡排序中,在每一轮的排序中,总能把最小或是最大的一个数字排到末端,然后下一次就不再次访问这个元素,直至所有元素排列完成. 代码: for (int i = 1; i ...

  7. 6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分)请编写函数Sort函数,将字符串中除首、尾字符外的其余字符按降序排列。函数接口定义:void Sort( char *

    6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分) 请编写函数Sort函数,将字符串中除首.尾字符外的其余字符按降序排列. 函数接口定义: void Sort( char *p ...

  8. Js中的Sort排序方式

    Js中的Sort排序方式 这里只列出部分排序方式 1.Sort排序 Sort排序是数组内置函数,但他的排序是根据系统字符默认排序 //数组const arr = [3,4,2,3,123,35,65, ...

  9. Java中使用sort()进行升序降序排序

    这篇文章主要介绍了详解Java sort()数组排序(升序和降序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 我们在学习 J ...

最新文章

  1. larvel 中的api.php_Laravel API 系列教程(一): 基于 Laravel 5.5 构建 测试 RESTful API...
  2. C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——删除(精简易懂版,句句干货)
  3. Oil Deposit
  4. 全栈深度学习第7期: 研究方向这么多,哪些是有有趣又潜力的呢?
  5. 将整张网页存成png图片
  6. IT外包 OpenEIM 强调CMMI等级
  7. jquery数组怎么传给后台_我是如何让公司后台管理系统焕然一新的(下)封装组件...
  8. linux没有图形界面opcv,关于Linux/ubuntu的环境下安装OpenCV并配置Clion【全套攻略】及关于'Opencv'file not found 的问题...
  9. GitHub Universe 2020 强势登陆,GitCode直播已上线
  10. 拉普拉斯变换公式表_工程数学中的积分变换的总结
  11. html5-微格式-时间的格式
  12. CSS美化超链接样式
  13. Vue开发环境搭建详解
  14. 径向基和径向基神经网路
  15. 框架里面的标签采集不到怎么办_怎么做微信生态的全数据采集和打通?
  16. 3 FPGA时序约束理论篇之IO约束
  17. rk3588调试之imx415摄像头
  18. 用不同的用户名和密码登录网络上的共享文件夹
  19. SimpleDateFormat的概述
  20. 回路电感详细介绍(环路电感)

热门文章

  1. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of SPb
  2. 华中农业大学第五届程序设计大赛网络同步赛解题报告2(转)
  3. 微信小程序中rpx与rem单位使用
  4. (25):Silverlight 2 综合实例之Live Search
  5. JQuery Dialog(JS模态窗口,可拖拽的DIV)
  6. Android学习之基础知识十一 —运用手机多媒体
  7. [BZOJ2958]序列染色
  8. Xcode7 无账号真机测试!!
  9. 【vue开发问题-解决方法】(八)利用axios拦截器实现elementUI中加载动画,控制加载区域
  10. Python升级后ssl模块不可用问题解决和浅析