# Program for Mean and median of an unsorted array

Given n size unsorted array, find its mean and median.

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

Median of a sorted array of size n is defined
as below :
It is 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
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 (4 + 5)/2 = 4.5

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Below is the code implementation:

## 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 program ` `int` `main() ` `{ ` `    ``int` `a[] = { 1, 3, 4, 2, 7, 5, 8, 6 }; ` `    ``int` `n = ``sizeof``(a)/``sizeof``(a); ` `    ``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 program ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `a[] = { ``1``, ``3``, ``4``, ``2``, ``7``, ``5``, ``8``, ``6` `}; ` `        ``int` `n = a.length; ` `        ``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[n``/``2``]) ` `     `  `    ``return` `float``((a[``int``((n``-``1``)``/``2``)] ``+` `                  ``a[``int``(n``/``2``)])``/``2.0``) ` ` `  `# Driver program ` `a ``=` `[ ``1``, ``3``, ``4``, ``2``, ``7``, ``5``, ``8``, ``6` `] ` `n ``=` `len``(a) ` `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; ` `        ``Console.Write(``"Mean = "` `+  ` `                       ``findMean(a, n) +  ` `                                 ````" "````);  ` `        ``Console.Write(``"Median = "` `+  ` `                       ``findMedian(a, n) +  ` `                                   ````" "````);  ` `    ``} ` `} ` ` `  `// This code is contributed by Smitha . `

## PHP

 ` `

Output:

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

Time Complexity to find mean = O(n)
Time Complexity to find median = O(n Log n) as we need to sort the array first. Note that we can find median in O(n) time using methods discussed here and here.