补充排序函数(更快速)

补充排序函数(更快速)

1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std;
2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)

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

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

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

(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。

两个参数用法

#include <iostream>
#include <algorithm>
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;
}

1
2
3
4
5
6
7
8
9
10
11
12
输出结果是升序排列。(两个参数的sort默认升序排序)

三个参数
// sort algorithm example

#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector

bool myfunction (int i,int j) { return (i<j); }//升序排列
bool myfunction2 (int i,int j) { return (i>j); }//降序排列

struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;

int main () {
    int myints[8] = {32,71,12,45,26,80,53,33};
  std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33

  // using default comparison (operator <):
  std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33

  // using function as comp
  std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
    //std::sort (myints,myints+8,myfunction);不用vector的用法

  // using object as comp
  std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)

  // print out content:
  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)//输出
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
string 使用反向迭代器来完成逆序排列

#include <iostream>
using namespace std;
int main()
{
     string str("cvicses");
     string s(str.rbegin(),str.rend());
     cout << s <<endl;
     return 0;
}

//输出:sescivc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114925.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • scikit-learn : LARS[通俗易懂]

    scikit-learn : LARS[通俗易懂]LARS正则化斯坦福大学的BradleyEfron,TrevorHastie,IainJohnstone和RobertTibshirani发现了LARS(LeastAngleRegression,最小角回归)它借用了威廉·吉尔伯特·斯特朗(WilliamGilbertStrang)介绍过的高斯消元法(Gaussianelimination)的灵感。背景LARS是一种回归手段,适

    2022年6月24日
    31
  • route add命令实例_cmd route

    route add命令实例_cmd route命令作用routeadd添加路由delete删除路由change更改现有路由print打印路由删除静态路由地址routedelete130.0.0.0mask255.0.0.0添加静态路由地址routeadd130.0.0.0MASK255.0.0.0134.32.80.1METRIC10意思是:所有需要发往130.0.0.0地址段的IP数据包,全部由路径134.32.80.1转发其中,路由跳数是可以省略的参数当通往…

    2022年8月12日
    8
  • 联想笔记本电脑键盘亮了屏幕不亮_联想电脑键盘灯亮屏幕黑屏

    联想笔记本电脑键盘亮了屏幕不亮_联想电脑键盘灯亮屏幕黑屏联想笔记本电脑一直是笔记本电脑行业里的大品牌,非常的受人们欢迎。但是它在使用时也会遇到很多问题,例如联想笔记本电脑开机键亮但是黑屏怎么办?联想笔记本电脑键盘失灵怎么办?所以在联想笔记本选购之前需要了解清楚需要故障时怎么解决。一、联想笔记本电脑开机键亮但是黑屏1、若遇到联想笔记本电脑开机键亮但是黑屏的情况,可以拆卸掉笔记本背面的电池,只用电源适配器连接电脑,尝试开机一次,如果开机正常,就是电池接触不…

    2022年9月20日
    2
  • VPP启动

    VPP启动在上文说到 在 VPP 启动之前 会提前通过宏定义的方式注册各种需要初始化的业务逻辑函数 本文主要介绍 VPP 的启动流程 nbsp VPP 的入口函数在 src vpp vnet main c1 nbsp nbsp nbsp 加载 startup conf 获取配置信息 VPP 启动 可以通过命令 如 vpp c etc vpp startup conf 启动 startup conf 包含了 VPP 默认的配置信息 涉及多种配置参数

    2025年10月23日
    3
  • mysql 往表中某个字段的字符串后追加字符串[通俗易懂]

    mysql 往表中某个字段的字符串后追加字符串

    2022年2月20日
    44
  • Labview 上位机编写

    基于kvaser的Labview上位机编写实现数据接收和发送功能传感器协议解析数据接收以及动态分析诊断服务

    2022年4月6日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号