How to sort a Vector in descending order using STL in C++?
Given a vector, sort this vector in descending order using STL in C++.
Example:
Input: vec = {1, 45, 54, 71, 76, 12} Output: {76, 71, 54, 45, 12, 1} Input: vec = {1, 7, 5, 4, 6, 12} Output: {12, 7, 6, 5, 4, 1}
Approach: Sorting can be done with the help of sort() function provided in STL.
Syntax 1:
sort(arr, arr + n, greater<T>());
C++
// C++ program to sort Vector // in descending order // using sort() in STL #include <bits/stdc++.h> using namespace std; int main() { // Get the vector vector< int > a = { 1, 45, 54, 71, 76, 12 }; // Print the vector cout << "Vector: " ; for ( int i = 0; i < a.size(); i++) cout << a[i] << " " ; cout << endl; // Sort the vector in descending order sort(a.begin(), a.end(), greater< int >()); // Print the reversed vector cout << "Sorted Vector in descending order:\n" ; for ( int i = 0; i < a.size(); i++) cout << a[i] << " " ; cout << endl; return 0; } |
Output
Vector: 1 45 54 71 76 12 Sorted Vector in descending order: 76 71 54 45 12 1
Time Complexity: O(N log N)
Auxiliary Space: O(1)
Syntax 2:
sort(arr.rbegin(),arr.rend());
C++
// C++ program to sort Vector // in descending order // using sort() in STL #include <bits/stdc++.h> using namespace std; int main() { // Get the vector vector< int > a = { 1, 7, 5, 4, 6, 12 }; // Print the vector cout << "Vector: " ; for ( int i = 0; i < a.size(); i++) cout << a[i] << " " ; cout << endl; // Sort the vector in descending order sort(a.rbegin(), a.rend()); // Print the reversed vector cout << "Sorted Vector in descending order:\n" ; for ( int i = 0; i < a.size(); i++) cout << a[i] << " " ; cout << endl; return 0; } |
Output
Vector: 1 7 5 4 6 12 Sorted Vector in descending order: 12 7 6 5 4 1
Time Complexity: O(N log N), Where N is the size of the vector
Auxiliary Space: O(1)
Please Login to comment...