## Q. Write a Program to find the frequency of each element in an array.

The program will find the frequency of each element in the given array. It will take array of integer as input and it will print frequency of each element in the array.

For Example :-
Input : arr[] = {4, 2, 2, 8, 3, 3, 1}
Output =
Frequency of 1 is 1
Frequency of 2 is 2
Frequency of 3 is 2
Frequency of 4 is 1
Frequency of 8 is 1

## Algorithm

```To solve this problem, we can use the following algorithm:

START
Step 1 : Take an integer array as input of size n.

Step 2 : Initialize a frequency array of size n with all elements as 0.

Step 3 : Traverse the input array and for each element a[i]:

a. Check if element already visited or not. If element already visited, then move to the next element.

b. If element not visited, then mark the element visited by setting the visited flag as 1.

c. Traverse the input array again and for each element a[j]:

i. If the element a[i] is equal to the element a[j], then increment the frequency array at index i.
Step 4 : Print the frequency of each element in the frequency array.
STOP
```

# Program to find the frequency of each element in an array

• C
• C++
• Java
• Python
• C#
• ```#include<stdio.h>
#define MAX_SIZE 100

int main()
{
int arr[MAX_SIZE], freq[MAX_SIZE];
int n, i, j, count;

printf("Enter size of array: ");
scanf("%d", &n);

// Input elements in array
printf("Enter elements in array:\n");
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
freq[i] = -1; // Initialize frequency array as -1
}

// Logic to find frequency of each element
for(i=0; i<n; i++)
{
count = 1;
for(j=i+1; j<n; j++)
{
if(arr[i] == arr[j])
{
count++;
freq[j] = 0; // Mark element as visited
}
}
if(freq[i] != 0)
{
freq[i] = count;
}
}

// Print frequency of each element
printf("\nFrequency of all elements of array : \n");
for(i=0; i<n; i++)
{
if(freq[i] != 0)
{
printf("%d occurs %d times\n", arr[i], freq[i]);
}
}
return 0;
}
```
```#include <iostream>
#include <unordered_map>

using namespace std;

int main() {
int n;
cout << "Enter the size of array: ";
cin >> n;

int arr[n];
cout << "Enter the elements of the array: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}

// using unordered_map to store the frequency of each element
unordered_map<int, int> freqMap;
for (int i = 0; i < n; i++) {
freqMap[arr[i]]++;
}

// printing the frequency of each element
cout << "Frequency of each element in the array: " << endl;
for (auto it = freqMap.begin(); it != freqMap.end(); it++) {
cout << it->first << " : " << it->second << endl;
}

return 0;
}
```
```import java.util.HashMap;

public class FrequencyOfElements {

public static void main(String[] args) {

int[] arr = {10, 20, 20, 10, 10, 30, 50, 10, 20};

// Create a HashMap to store the frequency of each element
HashMap<Integer, Integer> freqMap = new HashMap<>();

// Iterate over the array and update the frequency of each element in the HashMap
for(int i=0; i<arr.length; i++) {
if(freqMap.containsKey(arr[i])) {
freqMap.put(arr[i], freqMap.get(arr[i])+1);
} else {
freqMap.put(arr[i], 1);
}
}

// Print the frequency of each element
for(int key : freqMap.keySet()) {
System.out.println(key + " occurs " + freqMap.get(key) + " times");
}
}

}
```
```arr = [1, 2, 3, 2, 1, 2, 4, 5, 4, 1]

freq = {}

for i in arr:
if i in freq:
freq[i] += 1
else:
freq[i] = 1

for key, value in freq.items():
print(key, ":", value)
```
```using System;

class Program {
static void Main(string[] args) {
int[] arr = {1, 2, 3, 1, 2, 3, 4, 5, 6, 5};
int n = arr.Length;
int[] freq = new int[n];
int visited = -1;

for(int i = 0; i < n; i++) {
int count = 1;
for(int j = i + 1; j < n; j++) {
if(arr[i] == arr[j]) {
count++;
freq[j] = visited;
}
}
if(freq[i] != visited) {
freq[i] = count;
}
}

Console.WriteLine("Element\tFrequency");
for(int i = 0; i < n; i++) {
if(freq[i] != visited) {
Console.WriteLine(arr[i] + "\t" + freq[i]);
}
}
}
}
```
```#include<stdio.h>
#define MAX_SIZE 100

int main()
{
int arr[MAX_SIZE], freq[MAX_SIZE];
int n, i, j, count;

printf("Enter size of array: ");
scanf("%d", &n);

// Input elements in array
printf("Enter elements in array:\n");
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
freq[i] = -1; // Initialize frequency array as -1
}

// Logic to find frequency of each element
for(i=0; i<n; i++)
{
count = 1;
for(j=i+1; j<n; j++)
{
if(arr[i] == arr[j])
{
count++;
freq[j] = 0; // Mark element as visited
}
}
if(freq[i] != 0)
{
freq[i] = count;
}
}

// Print frequency of each element
printf("\nFrequency of all elements of array : \n");
for(i=0; i<n; i++)
{
if(freq[i] != 0)
{
printf("%d occurs %d times\n", arr[i], freq[i]);
}
}
return 0;
}

```

#### Output

```arr = [1, 2, 3, 2, 4, 3, 1, 5, 1, 4, 1, 3]

Element frequency:
1 : 4
2 : 2
3 : 3
4 : 2
5 : 1
```

## Recommended Programs

Check if a number is a power of three.
Program to remove all occurrences of a character in a string.