How to Find the Mode of Numbers in an Array in C++?
Last Updated :
14 Feb, 2024
Mode of any dataset is the item that occurs most frequently in it. In this article, we will find the mode of numbers in an unsorted array in C++.
For Example,
Input:
myArray = { 1, 2, 3, 4, 5, 2, 3, 2, 2, 4, 2 }
Output:
Mode : 2
Finding Mode of Array Elements in C++
To find the mode of the array elements, we need to count the frequency of all elements in the array. To do that, we can use the std::unordered_map container where the key will represent the array element and its value will represent its frequency.
Approach
- Create an unordered_map of <int, int>.
- Start traversing the array.
- Now, if the array element is present in the unordered_map, increment its value.
- If the array element is not present, add the array element as key with value 1.
- Finally, use std::max_element algorithm to find the maximum frequency and hence mode of the numbers.
C++ Program to Find Mode of Array Elements
C++
#include <algorithm>
#include <iostream>
#include <unordered_map>
using namespace std;
int findMode( int arr[], int n)
{
unordered_map< int , int > freqMap;
for ( int i = 0; i < n; i++) {
freqMap[arr[i]]++;
}
auto maxElement
= max_element(freqMap.begin(), freqMap.end(),
[]( const auto & a, const auto & b) {
return a.second < b.second;
});
return maxElement->first;
}
int main()
{
int arr[] = { 2, 2, 3, 3, 3, 4 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << "Mode of the array is " << findMode(arr, n)
<< endl;
return 0;
}
|
Output
Mode of the array is 3
Time Complexity: O(n)
Auxiliary Space: O(n)
Share your thoughts in the comments
Please Login to comment...