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个数。