Open In App

How to Find the Mode of Numbers in an Array in C++?

Last Updated : 14 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

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

  1. Create an unordered_map of <int, int>.
  2. Start traversing the array.
  3. Now, if the array element is present in the unordered_map, increment its value.
  4. If the array element is not present, add the array element as key with value 1.
  5. 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++




// C++ program to find the mode of an array
#include <algorithm>
#include <iostream>
#include <unordered_map>
  
using namespace std;
  
// Function to find the mode of an array
int findMode(int arr[], int n)
{
    // Create a frequency map to count occurrences of each
    // element
    unordered_map<int, int> freqMap;
    for (int i = 0; i < n; i++) {
        freqMap[arr[i]]++;
    }
  
    // Find the element with the maximum frequency
    auto maxElement
        = max_element(freqMap.begin(), freqMap.end(),
                      [](const auto& a, const auto& b) {
                          return a.second < b.second;
                      });
  
    // Return the mode (element with maximum frequency)
    return maxElement->first;
}
  
int main()
{
    // Test array
    int arr[] = { 2, 2, 3, 3, 3, 4 };
    int n = sizeof(arr) / sizeof(arr[0]);
    // Find and print the mode of the array
    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)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads