`

C++中sort排序函数用法

 
阅读更多
//string 使用反向迭代器来完成逆序排列
#include <iostream>
using namespace std;
int main()
{
     string str("cvicses");
     string s(str.rbegin(),str.rend());
     cout << s <<endl;
     return 0;
}
//输出:sescivc

 

//三个参数
// 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;
}

 

//两个参数用法
#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;
}
//输出结果是升序排列。(两个参数的sort默认升序排序)

 

sort用法

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

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

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

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

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

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    浅析C/C++中sort函数的用法

    做项目的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。

    C++ sort排序之降序、升序使用总结

    C++ sort 函数十分方便,可以对内置类型也可对自定义类型进行快速排序,内置类型的使用比较简单,下面主要讨论自定义类型的排序,一般有如下几种使用方法: 1.1 重载比较操作符 比如,我们现有一批学生,要根据他们...

    关于C++中定义比较函数的三种方法小结

    这篇文章旨在告诉大家如何为一个类定义一个排序方法,以便在STL容器或者方法中使用。 作为一个C++程序员,你应该知道这些方法。 如何定义排序? 简而言之,为一个类定义排序,我们就可以知道类的任意两个对象在排序...

    C++ 关于STL中sort()对struct排序的方法

    前言  一直没有系统去看过c++,因为懂得一些c的基本语法,在实际编程中用到c++,只能用到哪些看哪些,发现这样虽然能够完成大部分工作,但是有... 首先来看看std中的快速排序算法sort的使用方法:  template  void

    STL中algorithm部分函数的用法例子

    STL排序方法 在algorithm中sort 稳定排序 、堆排序的用法举例

    STL 1.算法之1.1Sort用法 及注意事项

    简单举例普通数组、vector、对象排序 ,列举了默认排序、自定义排序,在自定义排序函数注释部分 点明了容易出问题的地方

    STL入门快速入门教程-----学习C++

    例如find可以用来在容器中查找某特定值的元素,for_each可以用来将函数应用到容器元素之上,sort用于对容器中的元素排序。 8;迭代器(iterators)STL重要组成部分,每个容器都有自己的迭代器,只有容器才可以进行...

    c++运动会评分系统

    摘要:[目录]一、需求分析二、概要设计三、详细设计四、源代码:五、调试分析:六、运行结果分析:七、用户使用说明:八、收获及...(2)、按学校总分排序输出函数void sort_teamsore();本算法实现学校总分排序输出。

    力扣

    力扣刷题 88. 合并两个有序数组 ...而sort函数的强大之处在可与cmp函数结合使用,即排序方法的选择。 sort()函数是c++一种排序方法之一,相较冒泡排序和选择排序所带来的执行效率不高的问题,sort()

    数据结构排序实验报告.doc

    《数据结构》课程设计报告 实验五 排序 一、需求分析: 本演示程序用C++6.0编写,完成各种排序的实现,对输入的一组数字实现不同的排序 方法,对其由小到大顺序输出。 (1)分别对直接插入排序、希尔排序、冒泡排序...

    C++的STL

     sort函数的用法  自己写个冒泡之类的O(n^2)排序,不但程序容易超时,还很有可能写错。  STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。  这个函数可以传两...

    数据结构--单链表操作--实验报告.doc

    上机实验报告 课程名称: 数据结构A 实验题目: 实验一 单链表操作 专业班级: 学 号: 姓 名: 完成日期: 2017年10月11日 成 绩: 1. 实验内容、目的和要求 1.... 表示排序函数 void Input(); 表示输入

    吕鑫:【C++语法与数据结构第14天】【第3堂课】栈CStack类的数据结构(面试题)

    1、演示使用std::sort函数在动态数组内部排序的过程; 2、介绍和演示栈类CStack类的原理和开发方法;

    Binary-Tree-Heap:通过使用二叉树结构实现堆和堆排序的 C++

    通过 Max_Heap 实现使用二叉树结构实现堆和堆排序的 C++ 实现。 我的程序版本的算法是通过遍历树来实现的。 如果手动完成,插入涉及从左到右、从上到下的锯齿形移动方法,这就是我的 insert() 函数的工作方式。 ...

    stl常用算法(Algorithms)介绍(stl排序算法、非变序型队列)

    是一种应用在容器上以各种方法处理其内存的行为或功能,如sort(排序),copy(拷贝)… 算法由模板函数体现,这些函数不是容器类的成员函数,是独立的函数,它们可以用于STL容器,也可以用于普通的C++数组等. 头文件:#...

    深入理解golang的基本类型排序与slice排序

    C默认是对数组进行排序, C++是对一个序列进行排序, Go则更宽泛一些,待排序的可以是任何对象, 虽然很多情况下是一个slice(分片, 类似于数组),或是包含 slice 的一个对象。 排序(接口)的三个要素:  1、待排序...

    CCF-CSP必学知识【CSP认证考点的知识要求】

    有关CCF的CSP认证 一、CSP认证考点的知识要求 在数据结构中,线性表是基础,树是常考点,集合和映射要夕纪学。...ps:不可以对map使用sort函数,输入是无序的,会自动排序,输出是有序的 4、排序 论稳定性,越低

    pdqsort:破坏模式的快速排序

    pdqsort 模式对抗快速排序(pdqsort)是一种新颖的排序算法,将随机快速... 只需pdqsort std::sort的调用替换为pdqsort即可开始使用pdqsort模式的pdqsort 。 如果比较函数是无pdqsort_branchless ,则可以调用pdqso

    CCF-CSP必学知识

    有关CCF的CSP认证 一、CSP认证考点的知识要求 在数据结构中,线性表是基础,树是常考点,集合和映射要夕纪学。...ps:不可以对map使用sort函数,输入是无序的,会自动排序,输出是有序的 4、排序 论稳定性,越低

Global site tag (gtag.js) - Google Analytics