1、sort函数的时间复杂度为n*log2(n),执行效率较高。

2、sort函数的形式为sort(first,end,method)//其中第三个参数可选。

3、若为两个参数,则sort的排序默认是从小到大,见如下例子

  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4. int main()
  5. {
  6. int a[10]={9,6,3,8,5,2,7,4,1,0};
  7. for(int i=0;i<10;i++)
  8. cout<<a[i]<<endl;
  9. sort(a,a+10); //可以看出,两个参数为均地址,a为起始,a+10为结束位置
  10. for(int i=0;i<10;i++)
  11. cout<<a[i]<<endl;
  12. return 0;
  13. }
#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); //可以看出,两个参数为均地址,a为起始,a+10为结束位置

  for(int i=0;i<10;i++)

  cout<<a[i]<<endl;

  return 0;

}

4、若为三个参数,则需要写一个cmp函数(此名称cmp可变),用于判断是从小到大排序还是从大到小排序。

(1)需要排序的数组直接为int类型,则见如下例子(从大到小排序)

  1. #include <algorithm>
  2. #include <iostream>
  3. using namespace std;
  4. bool com(int a,int b)
  5. {
  6. return a>b;
  7. }
  8. int main()
  9. {
  10. int a[10]={9,6,3,8,5,2,7,4,1,0};
  11. for(int i=0;i<10;i++)
  12. cout<<a[i]<<endl;
  13. sort(a,a+10,com);//在这里就不需要对com函数传入参数
  14. for(int i=0;i<10;i++)
  15. cout<<a[i]<<endl;
  16. return 0;
  17. }
#include <algorithm>
#include <iostream>
using namespace std; bool com(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,com);//在这里就不需要对com函数传入参数 for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0; }

(2)如果想依照一个结构体内的一个int型的属性参数进行排序,则见如下例子(从大到小排列)

    1. #include <iostream>
    2. #include <algorithm>
    3. using namespace std;
    4. struct node {
    5. int a;
    6. //.........
    7. //
    8. };
    9. bool cmp(node x,node y)
    10. {
    11. if(x.a != y.a)
    12. return (x.a > y.a);
    13. }
    14. void main(void)
    15. {
    16. int i;
    17. node N_t[5];
    18. for(i=0; i<5; i++)
    19. {
    20. cin>>N_t[i].a;
    21. }
    22. sort(N_t, N_t+5, cmp);
    23. for(i=0; i<5; i++)
    24. {
    25. cout<<N_t[i].a;
    26. }
    27. }

#include <algorithm>中sort的一般用法的更多相关文章

  1. <algorithm>中sort()函数的用法

    先说一下,本篇文章我没有讲sort()实现排序的原理,我写在另一篇文章中了,如果想了解的话,可以看一下,附上链接:https://www.cnblogs.com/buanxu/p/12772700.h ...

  2. C++<algorithm>中sort的比较函数写法(转)

    转自:http://www.wl566.com/biancheng/98907.html C++<algorithm>中sort的比较函数写法,有需要的朋友可以参考下. 定义排序函数: 方 ...

  3. JS中sort()方法的用法,参数以及排序原理

    sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函 ...

  4. python中sort和sorted用法的区别

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列 一,最简单的排序 1.使用sort排序 my_list = [3 ...

  5. c++中sort基础用法

    用法一:数组排序 对一个数组进行升序排序 #include <algorithm> #include <iostream> #include <cstdio> us ...

  6. STL之sort函数的用法

    说明:本文仅供学习交流,转载请标明出处,欢迎转载! STL封装了一个排序算法,该算法相应的头文件为#include<algorithm>,我们能够依据须要对一个数组进行排序或者降序. so ...

  7. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  8. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  9. C++ 中的sort()排序函数用法

    sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list.向量排序. 实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此 ...

随机推荐

  1. esp8266烧录Html文件,实现内置网页控制设备!

    代码地址如下:http://www.demodashi.com/demo/14321.html 一.前言: 这个月也快结束了,时间真快,我服务器知识自学依然在路途中,这几天听到热点网页配置esp826 ...

  2. IBM InfoSphere DataStage 8.1 DataStage Job 开发具体解释

    简单介绍 DataStage 使用了 Client-Server 架构,server端存储全部的项目和元数据,client DataStage Designer 为整个 ETL 过程提供了一个图形化的 ...

  3. 使用SafeIP隐藏自己的IP

    资料:http://www.cnblogs.com/KeenLeung/p/3482241.html 1.到网上下载SafeIP这个工具,安装,打开 2.选择自己熟悉的语言: 3.到www.ip138 ...

  4. HDUOJ----1114(多重背包)悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  5. HDUOJ----(2064)汉诺塔III

    汉诺塔III Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. leetcode16 3-Sum

    题目链接 给定数组a[](长度不小于3)和一个数字target,要求从a中选取3个数字,让它们的和尽量接近target. 解法:首先对数组a进行排序,其次枚举最外面两层指针,对于第三个指针肯定是从右往 ...

  7. 批量修改Java类文件中引入的package包路径

    http://libeey.blogbus.com/logs/101848958.html当复制其他工程中的包到新工程的目录中时,由于包路径不同,出现红叉,下面的类要一个一个修改包路径,类文件太多的话 ...

  8. Android学习系列(6)--App模块化及工程扩展

    这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.需求    无论是在.net还是java平台,合理的分层架构是最普遍的模块化思路之一.    dll, ...

  9. SIPp常用脚本之三:UAC

    UAC是作为SIP消息的发起端,可以控制消息速率什么的,方便极了. 一.uac.xml <?xml version="1.0" encoding="ISO-8859 ...

  10. spring boot实战读书笔记1

    1 覆盖起步依赖引入的传递依赖. 以Spring Boot的Web起步依赖为例,它传递依赖了Jackson JSON库.如果不想使用,可以使用 <exclusions>元素去除Jackso ...