sort的时间复杂度是 O log N
使用方法如下:
#include<algorithm> //sort所要使用的头文件
使用方法:
sort(a+m,a+n); // [a+m,a+n) 范围内的元素进行排序
sort(a+m,a+n,cmp); // cmp 是函数或仿函数
#include<iostream>
using namespace std;
int main()
{
int arr[10]={1,6,4,7,6,1,9,2,7,4}; //数组名加数字的操作本质是指针
sort(arr+0,arr+10); //默认从小到大排序
for(int i=0;i<10;i++)
cout<<arr[i];
return 0;
}
如何实现从大到小排序
需要借助cmp函数
#include<bits/stdc++.h>
using namespace std;
struct node{
int a,b;
}a[100];
// 原理为真的时候 第一个数据b放在前面
bool cmp(node b,node c)
{
if(b.a>c.a) return 1;
return 0;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].a>>a[i].b;
}
sort(a+0,a+n,cmp);
for(int i=0;i<n;i++)
cout<<a[i].a<<a[i].b<<endl;
return 0;
}
使用仿函数