sort算法的使用

望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用。

  • 需要包含的头文件
#include<algorithm>
  • 使用

    sort(参数1,参数2,参数3)

    参数1:排序的左端点的迭代器或者地址

    参数2:排序的右端点的迭代器或者地址

    参数3:控制排序优先级的函数

    注意:

代码例子:

  • 对数组排序
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[100] = { 1,3,7,5,32,11,45,67 };
sort(a, a + 8);//注意是a+8而不是a+7,是最后一个元素的后一位,而不是最后一个元素
for (int i = 0; i < 8; i++)
{
cout << a[i] << " ";
}
return 0;
}

  • 对容器排序,以vector为例
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>arry;
arry.push_back(4);
arry.push_back(2);
arry.push_back(23);
arry.push_back(7);
sort(arry.begin(), arry.end());
for (int i = 0; i < arry.size(); i++) {
cout << arry[i] << " ";
}
return 0;
}

  • 自己写函数改变排序优先级,将从小到大--->从大到小
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(int& a, int& b) {
return a > b;
}
int main()
{
vector<int>arry;
arry.push_back(4);
arry.push_back(2);
arry.push_back(23);
arry.push_back(7);
sort(arry.begin(), arry.end(), cmp);
for (int i = 0; i < arry.size(); i++) {
cout << arry[i] << " ";
}
return 0;
}

sort算法的使用的更多相关文章

  1. STL源码分析----神奇的 list 的 sort 算法实现

    STL中有一个std::sort算法,但它是不支持std::list的,因为list不提供RandomIterator的支持,但list自己提供了sort算法,把list的元素按从小到大的方式来排序, ...

  2. 快速排序及STL中的sort算法

    快速排序基本思想是,对待排序序列进行划分(Partition),一次划分,选择一个元素作为枢轴,然后将所有比枢轴小的元素放到枢轴的左边,将比枢轴大的元素放到枢轴的右边.然后对该枢轴划分的左右子序列分别 ...

  3. 【决战西二旗】|理解Sort算法

    前言 前面两篇文章介绍了快速排序的基础知识和优化方向,今天来看一下STL中的sort算法的底层实现和代码技巧. 众所周知STL是借助于模板化来支撑数据结构和算法的通用化,通用化对于C++使用者来说已经 ...

  4. 地精排序(Gnome Sort) 算法

    gnome应该是最简单排序的排序算法吧!Gnome Sort,这是该算法的作者命名的,O(n*n)时间复杂度,O(1)空间复杂度,属于稳定的排序算法.算法的思想是每趟循环找到第一个逆序的元素,把它和在 ...

  5. 排序算法| Array.sort()算法规则

    1.js的Array.sort()是使用什么算法排序: 1.火狐中是“归并排序” 2.V8引擎是 “插入排序和快速排序结合”.数组长度不超过10时,使用插入排序.长度超过10使用快速排序.在数组较短时 ...

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

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

  7. V8 引擎的sort算法

    用的是快速排序,有点小问题 function ArraySort(comparefn) { // In-place QuickSort algorithm. // For short (length ...

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

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

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

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

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

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

随机推荐

  1. [namespace hdk] ordered_vector

    功能: 已重载[]运算符 已重载+运算符(合并) 已重载+=运算符 已重载构造函数 clear() it() 以std::vector形式返回自身 print(char=' ',char='\n') ...

  2. WebGL学习笔记

    完整 demo 和 lib 文件可以在 https://github.com/tengge1/webgl-guide-code 中找到. 第 2 章 WebGL 入门 第一个 WebGL 程序 fun ...

  3. 使用iis设置网站php版本为7.3

    内容:使用iis设置网站php版本为7.3这张图 是多少人的噩梦  早期的宝塔版本 没办法在线升级, php版本只能到7.1   默认就没有7.2以上版本   怎么办?可以在iis设置第一步: 第二步 ...

  4. Guava中的Joiner和Splitter

    目录 Guava 介绍 Joiner list转string map转string 处理嵌套集合 处理null值 Splitter string转list string转map 多个拆分符 输出 代码 ...

  5. (超全)Python汇总篇,200+Python标准库介绍

    关于Python标准库 众所周知,Python是一个依赖强大的组件库完成对应功能的语言,为了便捷实现各项功能,前辈大牛们打造了多种多样的工具库公开提供给大众使用,而越来越多的库已经因为使用的广泛和普遍 ...

  6. AI五子棋_09 消息循环实现自动对局

    AI五子棋 第九步 恭喜你到达第九步! 上一步我们已经完成了一个AI大脑的最核心功能.我们可以用它来对战了. 访问服务器 http://202.207.12.156:9012/join_game,会返 ...

  7. 循环程序结构设计(python)

    文章目录 1.基本概念 2.for循环 2.1 for循环基本结构 2.2 实例介绍 2.2.1 循环输出字符 2.2.2循环输出2000以内的素数 3.whlie循环 3.1 while循环基本结构 ...

  8. 题解:USACO23OPEN-Silver

    题解:USACO23OPEN-Silver T1 Milk Sum 给定一个长度为 \(N\) 的序列 \(a_1,a_2,...,a_n\),现在给出 \(Q\) 次操作每次将 \(a_x\) 修改 ...

  9. Qt Creator快捷键记录

    Ctrl + K:代码格式化(先选中要格式化的代码) F4:在头文件和源文件之间切换 Ctrl+/:注释和取消注释 F2:在声明和实现之间切换 Ctrl+K:打开定位器(locator),搜索文件名 ...

  10. Linux日志轮替与总结

    目录 基本介绍 轮替文件的命名 配置文件 路径位置 参数说明 举例:把自己的日志加入日志轮替 说明 步骤 日志轮替机制原理[个人理解,仅供参考] 总结[关于日志需要掌握的点] 基本介绍 日志轮替就是把 ...