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.5Input: 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 <stdio.h> #include <stdlib.h> // 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[0]); // 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 <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; } |
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
<?php // PHP program to find mean // and median of an array // Function for calculating mean function findMean(& $a , $n ) { $sum = 0; for ( $i = 0; $i < $n ; $i ++) $sum += $a [ $i ]; return (double) $sum / (double) $n ; } // Function for // calculating median function findMedian(& $a , $n ) { // First we sort the 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 $a = array (1, 3, 4, 2, 7, 5, 8, 6); $n = sizeof( $a ); // Function call echo "Mean = " . findMean( $a , $n ). "\n" ; echo "Median = " . findMedian( $a , $n ); // This code is contributed // by ChitraNayal ?> |
Javascript
<script> // Javascript program to find mean // and median of an array // Function for // calculating mean function findMean(a,n) { let sum = 0; for (let i = 0; i < n; i++) sum += a[i]; return sum / n; } // Function for // calculating median function findMedian(a,n) { // First we sort // the array a.sort(); // check for // even case if (n % 2 != 0) return a[n / 2]; return (a[Math.floor((n-1)/2)] + a[n / 2]) / 2; } // Driver Code let a = [1, 3, 4, 2, 7, 5, 8, 6] let n = a.length; // Function call document.write( "Mean = " + findMean(a, n) + "<br>" ); document.write( "Median = " + findMedian(a, n)); </script> |
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 neveropen 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 neveropen main page and help other Geeks.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!