Programa para la media y la mediana de una array no ordenada

Dada una array no ordenada de tamaño n , encuentre su media y mediana. 

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

La mediana de una array ordenada de tamaño n se define como el elemento del medio cuando n es impar y el promedio de los dos elementos del medio cuando n es par.
Dado que la array no está ordenada aquí, primero ordenamos la array y luego aplicamos la fórmula anterior.

Ejemplos: 

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 

A continuación se muestra la implementación del código: 

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>
Producción

Mean = 4.5
Median = 4.5

Complejidad de tiempo para encontrar la media: O(n) 
Complejidad de tiempo para encontrar la mediana: O(n Log n) ya que necesitamos ordenar la array primero. Tenga en cuenta que podemos encontrar la mediana en tiempo O (n) usando métodos

Espacio Auxiliar : O(1)

discutido aquí y aquí .

Este artículo es una contribución de Himanshu Ranjan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *