Untitled
unknown
plain_text
a year ago
1.1 kB
6
Indexable
#include <bits/stdc++.h> using namespace std; bool sortele(pair<int, int> a, pair<int, int> b) { if (a.second == b.second) return a.first < b.first; return a.second > b.second; } vector<int> Sortelementsbyfreq(int arr[], int n) { unordered_map<int, int> map; for (int i = 0; i < n; i++) { map[arr[i]]++; } vector<pair<int, int>> vec; for (auto it = map.begin(); it != map.end(); it++) { vec.push_back({it->first, it->second}); } sort(vec.begin(), vec.end(), sortele); vector<int> result; for (int i = 0; i < vec.size(); i++) { while (vec[i].second > 0) { result.push_back(vec[i].first); vec[i].second--; } } return result; } int main() { int arr[] = {4, 4, 5, 6, 4, 2, 2, 8, 5}; int n = sizeof(arr) / sizeof(arr[0]); vector<int> sortedVec = Sortelementsbyfreq(arr, n); // Print the sorted vector for (int num : sortedVec) { cout << num << " "; } cout << endl; return 0; }
Editor is loading...