sort()函数:对数组进行排序
头文件为#include<algorithm>
,存储在std命名空间中。
sort()函数有三个参数:第一个是数组的起始地址;第二个是数组的结束地址;第三个是如何排序(从大到小或从小到大。
一:没有第三个参数,默认从小到大排序
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n ;
int a[n];
for(int i=0;i<n;i++)
{
cin >> a[i] ;
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
if(i+1<n)
cout << a[i] << " " ;
else cout << a[i] << endl ;
}
return 0;
}
二:通过第三个参数来设置排序的方式
#include<iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main()
{
int n;
cin >> n ;
int a[n];
for(int i=0;i<n;i++)
{
cin >> a[i] ;
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
if(i+1<n)
cout << a[i] << " " ;
else cout << a[i] << endl ;
}
return 0;
}
三:less<数据类型>()//从小到大排序 ,greater<数据类型>()//从大到小排序
也是放在第三个参数的位置,其实也算是第三个参数,不一样的是数据类型是可以改的
//这是对整型从小到大排序
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n ;
int a[n];
for(int i=0;i<n;i++)
{
cin >> a[i] ;
}
sort(a,a+n,less<int>());
for(int i=0;i<n;i++)
{
if(i+1<n)
cout << a[i] << " " ;
else cout << a[i] << endl ;
}
return 0;
}
对字符串排序:
直接将数据类型改为string,其他数据类型同理
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin >> n ;
string a[n];
for(int i=0;i<n;i++)
{
cin >> a[i] ;
}
sort(a,a+n,greater<string>());
for(int i=0;i<n;i++)
{
if(i+1<n)
cout << a[i] << " " ;
else cout << a[i] << endl ;
}
return 0;
}