Mediana – Part 5

La mediana es el valor medio de un conjunto de datos. Para determinar el valor de la mediana en una secuencia de números, primero se deben ordenar los números en orden ascendente. 
 

  • Si hay una cantidad impar de números, el valor de la mediana es el número que está en el medio, con la misma cantidad de números por debajo y por encima.
  • Si hay una cantidad par de números en la lista, la mediana es el promedio de los dos valores centrales.

Hecho sobre la mediana: 
 

  1. La mediana se une con la media y la moda para crear una agrupación llamada medidas de tendencia central.
  2. La mediana es una medida importante (en comparación con la media) para los datos distorsionados, porque la mediana no se distorsiona tan fácilmente. Por ejemplo, la mediana de {1, 2, 2, 5, 100) es 2 y la media es 22.
  3. Si el usuario agrega una constante a cada valor, la media y la mediana aumentan en la misma constante.
  4. Si el usuario multiplica cada valor por una constante, la media y la mediana también se multiplicarán por esa constante.

Fórmula de la mediana de datos no agrupados: 
 

Fórmula de la mediana de datos agrupados: 
 

¿Cómo encontrar una mediana de una array no ordenada?
Solución ingenua: 
dada una array sin ordenar de tamaño  n , encuentre su mediana.
 

La mediana de una array ordenada de tamaño n se define de la siguiente manera: 
es el elemento central cuando n es impar y el promedio de dos elementos centrales 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  : {1, 3, 4, 2, 6, 5, 8, 7}
Output : Median = 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  : {4, 4, 4, 4, 4}
Output : Median = 4         

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

C++

// CPP program to find median
#include <bits/stdc++.h>
using namespace std;
 
// 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 program
int main()
{
    int a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };
    int n = sizeof(a) / sizeof(a[0]);
    cout << "Median = " << findMedian(a, n) << endl;
    return 0;
}

Java

// Java program to find median
import java.util.*;
 
class GFG {
 
    // 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 program
    public static void main(String args[])
    {
        int a[] = { 1, 3, 4, 2, 7, 5, 8, 6 };
        int n = a.length;
        System.out.println("Median = " + findMedian(a, n));
    }
}

Python3

# Python3 program to find median
 
# 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[n // 2])
     
    return float((a[int((n-1)/2)] +
                  a[int(n / 2)])/2.0)
 
# Driver program
a = [ 1, 3, 4, 2, 7, 5, 8, 6 ]
n = len(a)
print("Median =", findMedian(a, n))

C#

// C# program to find median
using System;
 
class GFG {
 
    // 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;
        Console.Write("Median = " + findMedian(a, n) + "\n");
    }
}

PHP

<?php
// PHP program to find median
 
// 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);
echo "Median = " .
      findMedian($a, $n);
?>

Javascript

<script>
 
// JavaScript program to find median
 
// 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[parseInt(n / 2)];
 
    return (a[parseInt((n - 1) / 2)] + a[parseInt(n / 2)]) / 2.0;
}
 
// Driver program
    let a = [ 1, 3, 4, 2, 7, 5, 8, 6 ];
    let n = a.length;
    document.write("Median = " + findMedian(a, n));
 
</script>

Producción:  

Median = 4.5

Complejidad de tiempo para encontrar la mediana = O (n Log n) ya que primero necesitamos ordenar la array. Tenga en cuenta que podemos encontrar la mediana en tiempo O(n) usando los métodos discutidos aquí y aquí .

Espacio Auxiliar: O(1)
Programa Básico relacionado con Mediana: 
 

Más problemas relacionados con la mediana: 
 

Artículos recientes sobre la mediana!
 

Publicación traducida automáticamente

Artículo escrito por ABHISHEK TIWARI 13 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 *