Open In App

# Program for Mean and median of an unsorted array

Given an unsorted array a[] of size N, the task is to find its mean and median.

Mean of an array = (sum of all elements) / (number of elements)

The median of a sorted array of size N is defined as the middle element when N is odd and average of middle two elements when N is even. Since the array is not sorted here, we sort the array first, then apply above formula.

Examples:

Input: a[] = {1, 3, 4, 2, 6, 5, 8, 7}
Output: Mean = 4.5, Median = 4.5
Explanation: Sum of the elements is 1 + 3 + 4 + 2 + 6 + 5 + 8 + 7 = 36, Mean = 36/8 = 4.5
Since number of elements are even, median is average of 4th and 5th largest elements, which means Median = (4 + 5)/2 = 4.5

Input: a[] = {4, 4, 4, 4, 4}
Output: Mean = 4, Median = 4

Approach:  To solve the problem follow the below steps:

### To find median:

• First, simply sort the array
• Then, check if the number of elements present in the array is even or odd
• If odd, then simply return the mid value of the array
• Else, the median is the average of the two middle values

### To find Mean:

• At first, find the sum of all the numbers present in the array.
• Then, simply divide the resulted sum by the size of the array

Below is the code implementation:

## C

 `// C program to find mean and median of``// an array``#include ``#include ` `// Function to compare two integers for qsort``int` `cmpfunc(``const` `void``* a, ``const` `void``* b)``{``    ``return` `(*(``int``*)a - *(``int``*)b);``}` `// Function for calculating mean``double` `findMean(``int` `a[], ``int` `n)``{``    ``int` `sum = 0;``    ``for` `(``int` `i = 0; i < n; i++)``        ``sum += a[i];` `    ``return` `(``double``)sum / (``double``)n;``}` `// Function for calculating median``double` `findMedian(``int` `a[], ``int` `n)``{``    ``// First we sort the array``    ``qsort``(a, n, ``sizeof``(``int``), cmpfunc);` `    ``// check for even case``    ``if` `(n % 2 != 0)``        ``return` `(``double``)a[n / 2];` `    ``return` `(``double``)(a[(n - 1) / 2] + a[n / 2]) / 2.0;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };``    ``int` `N = ``sizeof``(a) / ``sizeof``(a);` `    ``// Function call``    ``printf``(``"Mean = %f\n"``, findMean(a, N));``    ``printf``(``"Median = %f\n"``, findMedian(a, N));``    ``return` `0;``}`

## C++

 `// CPP program to find mean and median of``// an array``#include ``using` `namespace` `std;` `// Function for calculating mean``double` `findMean(``int` `a[], ``int` `n)``{``    ``int` `sum = 0;``    ``for` `(``int` `i = 0; i < n; i++)``        ``sum += a[i];` `    ``return` `(``double``)sum / (``double``)n;``}` `// Function for calculating median``double` `findMedian(``int` `a[], ``int` `n)``{``    ``// First we sort the array``    ``sort(a, a + n);` `    ``// check for even case``    ``if` `(n % 2 != 0)``        ``return` `(``double``)a[n / 2];` `    ``return` `(``double``)(a[(n - 1) / 2] + a[n / 2]) / 2.0;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };``    ``int` `N = ``sizeof``(a) / ``sizeof``(a);``  ` `    ``// Function call``    ``cout << ``"Mean = "` `<< findMean(a, N) << endl;``    ``cout << ``"Median = "` `<< findMedian(a, N) << endl;``    ``return` `0;``}`

## Java

 `// Java program to find mean``// and median of an array``import` `java.util.*;` `class` `GFG``{``    ``// Function for calculating mean``    ``public` `static` `double` `findMean(``int` `a[], ``int` `n)``    ``{``        ``int` `sum = ``0``;``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``sum += a[i];` `        ``return` `(``double``)sum / (``double``)n;``    ``}` `    ``// Function for calculating median``    ``public` `static` `double` `findMedian(``int` `a[], ``int` `n)``    ``{``        ``// First we sort the array``        ``Arrays.sort(a);` `        ``// check for even case``        ``if` `(n % ``2` `!= ``0``)``            ``return` `(``double``)a[n / ``2``];` `        ``return` `(``double``)(a[(n - ``1``) / ``2``] + a[n / ``2``]) / ``2.0``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `a[] = { ``1``, ``3``, ``4``, ``2``, ``7``, ``5``, ``8``, ``6` `};``        ``int` `n = a.length;``      ` `        ``// Function call``        ``System.out.println(``"Mean = "` `+ findMean(a, n));``        ``System.out.println(``"Median = "` `+ findMedian(a, n));``    ``}``}` `// This article is contributed by Anshika Goyal.`

## Python3

 `# Python3 program to find mean``# and median of an array` `# Function for calculating mean`  `def` `findMean(a, n):` `    ``sum` `=` `0``    ``for` `i ``in` `range``(``0``, n):``        ``sum` `+``=` `a[i]` `    ``return` `float``(``sum``/``n)` `# Function for calculating median`  `def` `findMedian(a, n):` `    ``# First we sort the array``    ``sorted``(a)` `    ``# check for even case``    ``if` `n ``%` `2` `!``=` `0``:``        ``return` `float``(a[``int``(n``/``2``)])` `    ``return` `float``((a[``int``((n``-``1``)``/``2``)] ``+``                  ``a[``int``(n``/``2``)])``/``2.0``)`  `# Driver code``a ``=` `[``1``, ``3``, ``4``, ``2``, ``7``, ``5``, ``8``, ``6``]``n ``=` `len``(a)` `# Function call``print``(``"Mean ="``, findMean(a, n))``print``(``"Median ="``, findMedian(a, n))` `# This code is contributed by Smitha Dinesh Semwal`

## C#

 `// C# program to find mean``// and median of an array``using` `System;` `class` `GFG``{``    ``// Function for``    ``// calculating mean``    ``public` `static` `double` `findMean(``int``[] a, ``int` `n)``    ``{``        ``int` `sum = 0;``        ``for` `(``int` `i = 0; i < n; i++)``            ``sum += a[i];` `        ``return` `(``double``)sum / (``double``)n;``    ``}` `    ``// Function for``    ``// calculating median``    ``public` `static` `double` `findMedian(``int``[] a, ``int` `n)``    ``{``        ``// First we sort``        ``// the array``        ``Array.Sort(a);` `        ``// check for``        ``// even case``        ``if` `(n % 2 != 0)``            ``return` `(``double``)a[n / 2];` `        ``return` `(``double``)(a[(n - 1) / 2] + a[n / 2]) / 2.0;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``int``[] a = { 1, 3, 4, 2, 7, 5, 8, 6 };``        ``int` `n = a.Length;``      ` `        ``// Function call``        ``Console.Write(``"Mean = "` `+ findMean(a, n) + ``"\n"``);``        ``Console.Write(``"Median = "` `+ findMedian(a, n)``                      ``+ ``"\n"``);``    ``}``}` `// This code is contributed by Smitha .`

## PHP

 ``

## Javascript

 ``

Output

```Mean = 4.5
Median = 4.5```

Complexity Analysis:

Time Complexity to find mean: O(N)
Time Complexity to find median: O(N Log N) as we need to sort the array first.
Auxiliary Space: O(1)

This article is contributed by Himanshu Ranjan. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.