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 qsortint cmpfunc(const void* a, const void* b){ return (*(int*)a - *(int*)b);}// Function for calculating meandouble 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 mediandouble 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 codeint 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 meandouble 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 mediandouble 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 codeint 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 arrayimport 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 meandef findMean(a, n): sum = 0 for i in range(0, n): sum += a[i] return float(sum/n)# Function for calculating mediandef 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 codea = [1, 3, 4, 2, 7, 5, 8, 6]n = len(a)# Function callprint("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 arrayusing 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 meanfunction findMean(&$a, $n){ $sum = 0; for ($i = 0; $i < $n; $i++) $sum += $a[$i]; return (double)$sum / (double)$n;}// Function for // calculating medianfunction 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 callecho "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 meanfunction findMean(a,n){ let sum = 0; for (let i = 0; i < n; i++) sum += a[i]; return sum / n;}// Function for// calculating medianfunction 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 Codelet a = [1, 3, 4, 2, 7, 5, 8, 6]let n = a.length;// Function calldocument.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!
