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:
- La mediana se une con la media y la moda para crear una agrupación llamada medidas de tendencia central.
- 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.
- Si el usuario agrega una constante a cada valor, la media y la mediana aumentan en la misma constante.
- 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:
- Maximizar la mediana de una array
- Incremento/decremento mínimo para hacer que los elementos de la array sean iguales
- Suma mínima de diferencias con un elemento en una array
- Mediana de dos arrays ordenadas de diferentes tamaños | Conjunto 1 (lineal)
- Mediana de dos arrays ordenadas con diferentes tamaños en O(log(min(n, m)))
Más problemas relacionados con la mediana:
- Mediana y moda usando la ordenación por conteo
- Número mínimo de elementos a sumar para hacer que la mediana sea igual a x
- Decodificar una string mediana a la string original
- Mediana después de K enteros adicionales
- Encuentre la mediana en la array ordenada por filas
- Encuentre la mediana de BST en tiempo O (n) y espacio O (1)
- Mediana en una secuencia de enteros (enteros en ejecución)
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