Program for Mean and median of an unsorted array

Hello Everyone,

Given n size unsorted array, find it’s 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 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.