Hello Everyone,

Given **n** size unsorted array, find it’s mean and median.

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

**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 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

Below is the code implementation:

`// CPP program to find mean and median of`

`// an array`

`#include <bits/stdc++.h>`

`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[0]);`

` `

` `

`// Function call`

` `

`cout << `

`"Mean = "`

`<< findMean(a, n) << endl;`

` `

`cout << `

`"Median = "`

`<< findMedian(a, n) << endl;`

` `

`return`

`0;`

`}`

**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.