注意事项
1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std;
2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)
3、Sort函数有三个参数:(第三个参数可不写)
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
实例
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(string a, string b)
{
return a+b > b+a; //降序排序,相同时短者排前
}
int main()
{
int n;
cin >> n;
vector<string> temp(n, "");
for (int i = 0; i < n; i++)
{
cin >> temp[i];
}
sort(temp.begin(), temp.end(), compare);
for (int i = 0; i < n; i++)
{
cout << temp[i];
}
return 0;
}
升降序
1)自己编写compare函数:
bool compare(int a,int b)
{
return a<b; //升序排列,如果改为return a>b,则为降序
}
调用时使用
sort(begin, end, compare);
2)头文件functional中自带
equal_to<Type>、not_equal_to<Type>、greater<Type>、greater_equal<Type>、less<Type>、less_equal<Type>
- 升序:sort(begin,end,less<data-type>());
- 降序:sort(begin,end,greater<data-type>());
调用时使用 sort(begin, end, greater<Type>());