码迷,mamicode.com
首页 > 其他好文 > 详细

STL sort

时间:2020-02-05 13:11:50      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:个数   etc   href   i++   cal   algorithm   lse   ret   注意   

sort 在 STL 库中是排序函数,有时冒泡等排序算法会超时时,我们可以使用STL中的快速排序函数 sort 完成排序。

又因为sort 在 algorithm 库里面,所以头文件应写成

#include<algorithm>

或者用万能头文件也可以

#include<bits/stdc++.h>

我们会发现 sort 有两种形式一个有三个参数,一个有两个参数,我们先讲讲两个参数的

sort 的前两个参数是起始地址和中止地址。

两个参数的代码如下

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int a[]={2,1,5,0,-1,5,9};
    sort(a,a+7);
    for(int i=0;i<7;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

输出为“-1 0 1 2 5 5 9”。

这是一个从小到大的排序,是默认的升序,而降序就要用到第三个参数了。

可以调用 greater 和 less 进行升/降序排序,其实就是一个帮你写好的函数。

代码如下:

greater:

int a[11],n;
scanf("%d",&n);
for (int i = 1;i <= n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1,greater<int>()); //升序,这里要注意<>这个括号里要写排序的数组类型

less:

int a[11],n;
scanf("%d",&n);
for (int i = 1;i <= n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1,less<int>()); //降序,这里要主要<>括号里写的是数组类型

它也可以进行局部排序,就是将sort中第一个和第二个参数进行改变。

a+1就是从第2个数开始进行排序。

a+n+1就是排序到第n+1个数。

详细视频网址:https://www.bilibili.com/video/av26938209?p=57

详细视频网址:https://www.icourse163.org/learn/PKU-1001553023?tid=1002457004#/learn/content?type=detail&id=1003312836

STL sort

标签:个数   etc   href   i++   cal   algorithm   lse   ret   注意   

原文地址:https://www.cnblogs.com/death-thorn/p/12263225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!