转载:https://blog.csdn.net/w_linux/article/details/76222112

用法

1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std;

2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)

3、Sort函数有三个参数:(第三个参数可不写)

(1)第一个是要排序的数组的起始地址。

(2)第二个是结束的地址(最后一位要排序的地址)

(3)第三个参数是排序的方法,可以是「降序」也可是「升序」,

还可以不写第三个参数,此时默认的排序方法是「升序」排序。

两个参数用法

#include <iostream>
#include <algorithm>using namespace std;int main()
{int a[20]={2,4,1,23,5,76,0,43,24,65},i;for(i=0;i<20;i++)cout<<a[i]<<endl;sort(a,a+20);for(i=0;i<20;i++)cout<<a[i]<<endl;return 0;
}

输出结果是升序排列。(两个参数的sort默认升序排序)

三个参数用法

形式:sort ( arr, arr+SIZE, compare ) 或者 sort ( begin, end, compare )

可以通过编写compare函数改变Sort的排序规则。

降序

#include <iostream>
#include <algorithm>using namespace std;bool compare(int a,int b)
{return a>b; //降序排列,如果改为return a<b,则为升序
}int main()
{int a[20]={2,4,1,23,5,76,0,43,24,65},i;for(i=0;i<20;i++)cout<<a[i]<<endl;sort(a,a+20,compare);for(i=0;i<20;i++)cout<<a[i]<<endl;return 0;
}

绝对值排序

#include <cmath>bool compare(int a, int b){return abs(a) > abs(b);}

结构体排序

自己写比较算子函数的写法

struct node
{int u, v, w;
};bool cmp(node a, node b)
{if(a.w < b.w ) //按照w的值进行的是:升序排列 !return true;elsereturn false;
}//还可以这样写
bool cmp(node a, node b)
{return a.w<b.w; //升序
}

当然cmp函数也可以写的稍微复杂点,也就是说,

按照优先级对结构体的多个成员按照某种规则排序,就像刚才上面写的

//先按照w的值升序排序,如果w相等,再按照v的值升序排序bool cmp(node a, node b){if(a.w==b.w)return a.v<b.v;elsereturn a.w<b.w;
}//或者这样写bool cmp(node a, node b)
{if(a.w<b.w)return true;if(a.w==b.w && a.v<b.v )return true;return false;
}

C++ sort 排序函数使用方法相关推荐

  1. 自写sort排序函数(支持重载排序规则)

      最近有点浮躁,无心练题,便捣鼓了一阵子的C++.接触了一点点的重载和模板后,心血来潮想写一点牛逼点的东西.因为平时打编程比赛要排序的地方都是直接用的C++中自带的sort排序函数,就想自己也写一个 ...

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

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

  3. C++中sort()排序函数应用

    ** C++中sort()排序函数应用 ** sort(first_pointer,first_pointer+n,cmp) 该函数可给数组,或者链表list.向量排序. 实现原理:sort并不是简单 ...

  4. sort()排序函数

    http://blog.csdn.net/zzzmmmkkk/article/details/4266888 想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qso ...

  5. C++ sort() 排序函数

    本文参考的博客链接 PAT排序例题A1025 经典排序算法 算法总目录 一.简介 1.头文件:#include 2.时间复杂度:sort在实现中规避了经典快速排序中可能出现的会导致实际复杂度退化到O( ...

  6. 详述Java中sort排序函数

    文章目录 前言 升序排序 降序排序 排序原理 前言 手写一个排序算法的效率是很慢的,当然这也不利于我们在比赛或者工程中的实战,如今几乎每个语言的标准库中都有排序算法,今天让我来给大家讲解一下Java语 ...

  7. qsort(),sort()排序函数

     一.qsort()函数 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*f ...

  8. sort redis php,php-redis中的sort排序函数总结

    很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道.但是在怎么构建还是key和value的关系,与真正的关系型数据库还是不一样的. 效率高,不方便:方便的,效 ...

  9. C++ sort排序函数用法

    最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数 用 ...

最新文章

  1. Windows 10 Anaconda Python 3.7 安装 MXNet GPU版
  2. Java春招实习面试经验汇总,面试篇
  3. 【数据结构与算法】浅析堆栈以及数据结构的堆和栈
  4. 想创业就去创,愿意打工就去上班打工,每个人都有每个人的活法
  5. python执行mysql存储过程_Mysql学习---使用Python执行存储过程
  6. 4.RabbitMQ 安装
  7. 大数据与机器学习:实践方法与行业案例.1.4 本章小结
  8. 思科模拟器 交换机链路聚合(二层、三层)
  9. 课程学习与自步学习Curriculum learning and self-paced learning:极简入门
  10. 【文献调研】SLAM方向综述性论文
  11. oracle 抽样_利用ORACLE实现数据抽样(sample block)
  12. 手机使用linux教程,通过手机访问Linux电脑的教程
  13. h5棋牌游戏源码 java_YM202H5房ka微信贝密棋盘游戏平台,完整全套游戏源码下载...
  14. Codeforces 1744B. Even-Odd Increments
  15. 【实战】深度学习构建人脸面部表情识别系统
  16. 英科学家用扫描技术成功读取大脑记忆
  17. 信息系统项目管理师考试法律法规、行业标准、政策资料
  18. Excel 批量重命名照片
  19. HTCVIVE物体跟随手柄移动手柄叩击
  20. 云海IOP 3.0:为行业云而生

热门文章

  1. 为什么商家有了收款二维码还要使用聚合支付?
  2. 小程序跳到h5页面_小程序如何跳转h5页面
  3. jwplayer html插件,jw player(网页媒体播放器插件) v2017 最新版
  4. java输入日期判断这天是周几
  5. 月份和星期的英语(请不要再弄错了)
  6. 小白兔笑话全集笑死人不偿命(转+转)
  7. 如何将DotNetFX35SP1打进安装包
  8. Java并发HashSet报错ConcurrentModificationException解决方案
  9. A Noise-Robust Framework for Automatic Segmentation of COVID-19 Pneumonia Lesions From CT Images论文笔记
  10. python七巧板绘图_记录一次canvas绘图(七巧板)