如何使用C++ STL将Vector降序排序
给定一个Vector,使用C++ STL将该Vector降序排序。
示例:
输入: vec = {1, 45, 54, 71, 76, 12}
输出: {76, 71, 54, 45, 12, 1}
输入: vec = {1, 7, 5, 4, 6, 12}
输出: {12, 7, 6, 5, 4, 1}
方法: 使用STL中提供的sort()函数进行排序。
语法1:
sort(arr, arr + n, greater<T>());
// C++程序将Vector按降序排序
//使用C++ STL中的sort()
#include <bits/stdc++.h>;
using namespace std;
int main()
{
// 获取Vector
vector<int> a = { 1, 45, 54, 71, 76, 12 };
// 打印Vector
cout << "Vector:";
for (int i = 0; i < a.size(); i++)
cout << a[i] << " ";
cout << endl;
// 将Vector按降序排序
sort(a.begin(), a.end(), greater<int>());
// 打印逆序Vector
cout << "降序排列的Vector:\n";
for (int i = 0; i < a.size(); i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
输出
Vector:1 45 54 71 76 12
降序排列的Vector:
76 71 54 45 12 1
时间复杂度: O(N log N)
辅助空间: O(1)
语法2:
sort(arr.rbegin(),arr.rend());
// C++程序将Vector按降序排序
//使用C++ STL中的sort()
#include <bits/stdc++.h>;
using namespace std;
int main()
{
// 获取Vector
vector<int> a = { 1, 7, 5, 4, 6, 12 };
// 打印Vector
cout << "Vector:";
for (int i = 0; i < a.size(); i++)
cout << a[i] << " ";
cout << endl;
// 将Vector按降序排序
sort(a.rbegin(), a.rend());
// 打印逆序Vector
cout << "降序排列的Vector:\n";
for (int i = 0; i < a.size(); i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
输出
Vector: 1 7 5 4 6 12
降序排列的Vector:
12 7 6 5 4 1
时间复杂度: O(N log N),其中N是Vector的大小。
辅助空间: O(1)