Given an unsorted array of n integers which can contains n integers. Count frequency of all elements that are present in array. Examples:
Input : arr[] = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5]
Output : 1 -> 4
2 -> 4
3 -> 2
4 -> 1
5 -> 2
This problem can be solved in many ways, refer Count frequencies of all elements in array link. In Python, we can quickly solve this problem in using Collections module.
Implementation:
# Function to count frequency of each element
import collections
# it returns a dictionary data structure whose
# keys are array elements and values are their
# corresponding frequencies {1: 4, 2: 4, 3: 2,
# 5: 2, 4: 1}
def CountFrequency(arr):
return collections.Counter(arr)
# Driver function
if __name__ == "__main__":
arr = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5]
freq = CountFrequency(arr)
# iterate dictionary named as freq to print
# count of each element
for (key, value) in freq.items():
print (key, " -> ", value)
Output
(1, ' -> ', 4) (2, ' -> ', 4) (3, ' -> ', 2) (4, ' -> ', 1) (5, ' -> ', 2)
The time complexity of this function is O(n), where n is the length of the input array.
The auxiliary space required by this function is O(k), where k is the number of unique elements in the input array.
Related Article : Counting the frequencies in a list using dictionary in Python