Find the frequency of a number in an array - GeeksforGeeks

14 May, 2021
Given an array, a[], and an element x, find a number of occurrences of x in a[].Examples:  
Input  : a[] = {0, 5, 5, 5, 4}
           x = 5
Output : 3

Input  : a[] = {1, 2, 3}
          x = 4
Output : 0
 
 
If array is not sorted
The idea is simple, we initialize count as 0. We traverse the array in a linear fashion. For every element that matches with x, we increment count. Finally, we return count. Below is the implementation of the approach. 
C++
Java
Python3
C#
PHP
Javascript
// CPP program to count occurrences of an// element in an unsorted array#include<iostream>using namespace std; int frequency(int a[], int n, int x){    int count = 0;    for (int i=0; i < n; i++)       if (a[i] == x)          count++;    return count;} // Driver programint main() {    int a[] = {0, 5, 5, 5, 4};    int x = 5;    int n = sizeof(a)/sizeof(a[0]);    cout << frequency(a, n, x);    return 0;}
// Java program to count// occurrences of an// element in an unsorted// array import java.io.*; class GFG {         static int frequency(int a[],    int n, int x)    {        int count = 0;        for (int i=0; i < n; i++)        if (a[i] == x)            count++;        return count;    }         // Driver program    public static void main (String[]    args) {                 int a[] = {0, 5, 5, 5, 4};        int x = 5;        int n = a.length;                 System.out.println(frequency(a, n, x));    }} // This code is contributed// by Ansu Kumari
# Python program to count# occurrences of an# element in an unsorted# arraydef frequency(a, x):    count = 0         for i in a:        if i == x: count += 1    return count # Driver programa = [0, 5, 5, 5, 4]x = 5print(frequency(a, x)) # This code is contributed by Ansu Kumari
// C# program to count// occurrences of an// element in an unsorted// arrayusing System; class GFG {         static int frequency(int []a,    int n, int x)    {        int count = 0;        for (int i=0; i < n; i++)        if (a[i] == x)            count++;        return count;    }         // Driver program    static public void Main (){                      int []a = {0, 5, 5, 5, 4};        int x = 5;        int n = a.Length;                 Console.Write(frequency(a, n, x));    }} // This code is contributed// by Anuj_67
<?php// PHP program to count occurrences of an// element in an unsorted array function frequency($a, $n, $x){    $count = 0;    for ($i = 0; $i < $n; $i++)    if ($a[$i] == $x)        $count++;    return $count;}     // Driver Code    $a = array (0, 5, 5, 5, 4);    $x = 5;    $n = sizeof($a);    echo frequency($a, $n, $x); // This code is contributed by ajit?>
<script>    // C# program to count occurrences of an element in an unsorted array         function frequency(a, n, x)    {        let count = 0;        for (let i=0; i < n; i++)        if (a[i] == x)            count++;        return count;    }         let a = [0, 5, 5, 5, 4];    let x = 5;    let n = a.length;     document.write(frequency(a, n, x));                              </script>
Output: 
3
Time Complexity : O(n) Auxiliary Space : O(1) 
If array is sorted
We can apply methods for both sorted and unsorted. But for a sorted array, we can optimize it to work in O(Log n) time using Binary Search. Please refer to below article for details.Count number of occurrences (or frequency) in a sorted array. 
If there are multiple queries on a single array
We can use hashing to store frequencies of all elements. Then we can answer all queries in O(1) time. Please refer Frequency of each element in an unsorted array for details.  
CPP
Java
Python3
C#
Javascript
// CPP program to answer queries for frequencies// in O(1) time.#include <bits/stdc++.h>using namespace std;  unordered_map<int, int> hm; void countFreq(int a[], int n){    // Insert elements and their    // frequencies in hash map.    for (int i=0; i<n; i++)        hm[a[i]]++;} // Return frequency of x (Assumes that// countFreq() is called before)int query(int x){    return hm[x];}  // Driver programint main(){    int a[] = {1, 3, 2, 4, 2, 1};    int n = sizeof(a)/sizeof(a[0]);    countFreq(a, n);    cout << query(2) << endl;    cout << query(3) << endl;    cout << query(5) << endl;    return 0;}
// Java program to answer// queries for frequencies// in O(1) time. import java.io.*;import java.util.*; class GFG {        static HashMap <Integer, Integer> hm = new HashMap<Integer, Integer>();    static void countFreq(int a[], int n)   {        // Insert elements and their        // frequencies in hash map.        for (int i=0; i<n; i++)            if (hm.containsKey(a[i]) )                hm.put(a[i], hm.get(a[i]) + 1);            else hm.put(a[i] , 1);    }         // Return frequency of x (Assumes that    // countFreq() is called before)    static int query(int x)    {        if (hm.containsKey(x))            return hm.get(x);        return 0;    }         // Driver program    public static void main (String[] args) {        int a[] = {1, 3, 2, 4, 2, 1};        int n = a.length;        countFreq(a, n);        System.out.println(query(2));        System.out.println(query(3));        System.out.println(query(5));    }    } // This code is contributed by Ansu Kumari
# Python program to# answer queries for# frequencies# in O(1) time. hm = {} def countFreq(a):    global hm         # Insert elements and their    # frequencies in hash map.         for i in a:        if i in hm: hm[i] += 1        else: hm[i] = 1 # Return frequency# of x (Assumes that# countFreq() is# called before)def query(x):    if x in hm:        return hm[x]    return 0 # Driver programa = [1, 3, 2, 4, 2, 1]countFreq(a)print(query(2))print(query(3))print(query(5)) # This code is contributed# by Ansu Kumari
// C# program to answer// queries for frequencies// in O(1) time.using System;using System.Collections.Generic;class GFG{     static Dictionary <int, int> hm = new Dictionary<int, int>(); static void countFreq(int []a, int n){    // Insert elements and their    // frequencies in hash map.    for (int i = 0; i < n; i++)        if (hm.ContainsKey(a[i]) )            hm[a[i]] = hm[a[i]] + 1;        else hm.Add(a[i], 1);}     // Return frequency of x (Assumes that// countFreq() is called before)static int query(int x){    if (hm.ContainsKey(x))        return hm[x];    return 0;}     // Driver codepublic static void Main(String[] args){    int []a = {1, 3, 2, 4, 2, 1};    int n = a.Length;    countFreq(a, n);    Console.WriteLine(query(2));    Console.WriteLine(query(3));    Console.WriteLine(query(5));}} // This code is contributed by 29AjayKumar
<script> // JavaScript program to answer// queries for frequencies// in O(1) time.  var hm = new Map(); function countFreq(a, n){    // Insert elements and their    // frequencies in hash map.    for (var i=0; i<n; i++)    {        if(hm.has(a[i]))        {            hm.set(a[i], hm.get(a[i])+1);        }        else        {            hm.set(a[i], 1);        }    }} // Return frequency of x (Assumes that// countFreq() is called before)function query(x){    if(hm.has(x))    {        return hm.get(x);    }    return 0;}  // Driver programvar a = [1, 3, 2, 4, 2, 1];var n = a.length;countFreq(a, n);document.write( query(2) + "<br>");document.write( query(3) + "<br>");document.write( query(5) + "<br>"); </script>
Output : 
2
1
0
This article is contributed by Sangita Dey. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
jit_t
vt_m
29AjayKumar
divyesh072019
rutvik_56
Binary Search
Arrays
Arrays
Binary Search
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Stack Data Structure (Introduction and Program)
Top 50 Array Coding Problems for Interviews
Introduction to Arrays
Multidimensional Arrays in Java
Linear Search
Maximum and minimum of an array using minimum number of comparisons
Python | Using 2D arrays/lists the right way
Linked List vs Array
Given an array A[] and a number x, check for pair in A[] with sum as x (aka Two Sum)
Queue | Set 1 (Introduction and Array Implementation)