Data Structure Array: Sort elements by frequency

http://www.geeksforgeeks.org/sort-elements-by-frequency-set-2/

 1 #include <iostream>

 2 #include <vector>

 3 #include <algorithm>

 4 #include <queue>

 5 #include <stack>

 6 #include <string>

 7 #include <fstream>

 8 #include <map>

 9 using namespace std;

10 

11 void printarray(int arr[], int n) {

12     map<int, int> S;

13     for (int i = 0; i < n; i++) {

14         if (S.find(arr[i]) == S.end()) S[arr[i]] = 1;

15         else S[arr[i]]++;

16     }

17     map<int, vector<int> > T;

18     for (map<int, int>::iterator it = S.begin(); it != S.end(); it++) {

19         T[it->second].push_back(it->first);

20     }

21     for (map<int, vector<int> >::iterator it = T.end(); it != T.begin();) {

22         it--;

23         vector<int> tmp = it->second;

24         for (int j = 0; j < tmp.size(); j++) {

25             for (int k = 0; k < it->first; k++) cout << tmp[j] << " ";

26         }

27     }

28 }

29 

30 int main() {

31     int arr[11] = {2, 3, 2, 4, 5, 12, 2, 3, 3, 3, 12};

32     printarray(arr, 11);

33     return 0;

34 }

 

你可能感兴趣的:(element)