Given an array **arr** of integers of size **N**, the task is to find, for every element, the number of elements that are greater than it.

**Examples:**

Input:arr[] = {4, 6, 2, 1, 8, 7}

Output:{3, 2, 4, 5, 0, 1}

Input:arr[] = {2, 3, 4, 5, 6, 7, 8}

Output:{6, 5, 4, 3, 2, 1, 0}

**Approach:** Store the frequencies of every array element using a Map. Iterate the Map in reverse and store the sum of the frequency of all previously traversed elements (i.e. elements greater than it) for every element.

Below code is the implementation of the above approach:

## C++

`// C++ implementation of the above approach ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `void` `countOfGreaterElements(` `int` `arr[], ` `int` `n) ` `{ ` ` ` `// Store the frequency of the ` ` ` `// array elements ` ` ` `map<` `int` `, ` `int` `> mp; ` ` ` `for` `(` `int` `i = 0; i < n; i++) { ` ` ` `mp[arr[i]]++; ` ` ` `} ` ` ` ` ` `int` `x = 0; ` ` ` `// Store the sum of frequency of elements ` ` ` `// greater than the current eleement ` ` ` `for` `(` `auto` `it = mp.rbegin(); it != mp.rend(); it++) { ` ` ` `int` `temp = it->second; ` ` ` `mp[it->first] = x; ` ` ` `x += temp; ` ` ` `} ` ` ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` `cout << mp[arr[i]] << ` `" "` `; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` ` ` `int` `arr[] = { 7, 9, 5, 2, 1, 3, 4, 8, 6 }; ` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]); ` ` ` ` ` `countOfGreaterElements(arr, n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the above approach ` `import` `java.util.*; ` ` ` `class` `GfG { ` ` ` `public` `static` `void` `countOfGreaterElements(` `int` `arr[]) ` ` ` `{ ` ` ` `int` `n = arr.length; ` ` ` ` ` `TreeMap<Integer, Integer> mp = ` `new` `TreeMap<Integer, Integer>(Collections.reverseOrder()); ` ` ` ` ` `// Store the frequency of the ` ` ` `// array elements ` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) { ` ` ` `mp.put(arr[i], mp.getOrDefault(arr[i], ` `0` `) + ` `1` `); ` ` ` `} ` ` ` ` ` `// Store the sum of frequency of elements ` ` ` `// greater than the current eleement ` ` ` `int` `x = ` `0` `; ` ` ` `for` `(Map.Entry<Integer, Integer> e : mp.entrySet()) { ` ` ` `Integer temp = e.getValue(); ` ` ` `mp.put(e.getKey(), x); ` ` ` `x += temp; ` ` ` `} ` ` ` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) ` ` ` `System.out.print(mp.get(arr[i]) + ` `" "` `); ` ` ` `} ` ` ` ` ` `public` `static` `void` `main(String args[]) ` ` ` `{ ` ` ` `int` `arr[] = { ` `7` `, ` `9` `, ` `5` `, ` `2` `, ` `1` `, ` `3` `, ` `4` `, ` `8` `, ` `6` `}; ` ` ` `countOfGreaterElements(arr); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## Python 3

`# Python 3 implementation of the above approach ` ` ` `def` `countOfGreaterElements(arr, n): ` ` ` `# Store the frequency of the ` ` ` `# array elements ` ` ` `mp ` `=` `{i:` `0` `for` `i ` `in` `range` `(` `1000` `)} ` ` ` `for` `i ` `in` `range` `(n): ` ` ` `mp[arr[i]] ` `+` `=` `1` ` ` ` ` `x ` `=` `0` ` ` `# Store the sum of frequency of elements ` ` ` `# greater than the current eleement ` ` ` `p ` `=` `[] ` ` ` `q ` `=` `[] ` ` ` `m ` `=` `[] ` ` ` `for` `key, value ` `in` `mp.items(): ` ` ` `m.append([key, value]) ` ` ` `m ` `=` `m[::` `-` `1` `] ` ` ` ` ` `for` `p ` `in` `m: ` ` ` `temp ` `=` `p[` `1` `] ` ` ` `mp[p[` `0` `]] ` `=` `x ` ` ` `x ` `+` `=` `temp ` ` ` ` ` `for` `i ` `in` `range` `(n): ` ` ` `print` `(mp[arr[i]], end ` `=` `" "` `) ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `'__main__'` `: ` ` ` `arr ` `=` `[` `7` `, ` `9` `, ` `5` `, ` `2` `, ` `1` `, ` `3` `, ` `4` `, ` `8` `, ` `6` `] ` ` ` `n ` `=` `len` `(arr) ` ` ` ` ` `countOfGreaterElements(arr, n) ` ` ` `# This code is contributed by Surendra_Gangwar ` |

*chevron_right*

*filter_none*

**Output:**

2 0 4 7 8 6 5 1 3

**Time Complexity:** O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Count elements in first Array with absolute difference greater than K with an element in second Array
- Count the number of elements which are greater than any of element on right side of an array
- Count of elements in first Array greater than second Array with each element considered only once
- Count elements whose sum with K is greater than max element
- Count of Array elements greater than all elements on its left and at least K elements on its right
- Elements greater than the previous and next element in an Array
- Count of array elements which are greater than all elements on its left
- Adding elements of an array until every element becomes greater than or equal to k
- Sum of elements in an array with frequencies greater than or equal to that element
- Count of distinct index pair (i, j) such that element sum of First Array is greater
- Noble integers in an array (count of greater elements is equal to value)
- Count the number of sub-arrays such that the average of elements present in the sub-array is greater than that not present in the sub-array
- Count distinct elements after adding each element of First Array with Second Array
- For each element in 1st array count elements less than or equal to it in 2nd array | Set 2
- For each element in 1st array count elements less than or equal to it in 2nd array
- Count elements that are divisible by at-least one element in another array
- Count of triplets from the given Array such that sum of any two elements is the third element
- Count of pairs from arrays A and B such that element in A is greater than element in B at that index
- Count of distinct possible pairs such that the element from A is greater than the element from B
- Count of operations to make all elements of array a[] equal to its min element by performing a[i] – b[i]

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.