¿Cuáles son algunas formas diferentes de calcular la mediana de una matriz en Java?

Puede encontrar el índice medio de la matriz y usarlo para encontrar la mediana. Hay dos posibilidades en este caso:

  1. El tamaño de la matriz es impar (por ejemplo, [1, 2, 3] donde n = 3)
  2. El tamaño de la matriz es par (por ejemplo, [1, 2, 3, 4] donde n = 4)

Si el tamaño de la matriz es impar, es mucho más simple, simplemente divida el tamaño de la matriz por 2 y agregue 1.

int [] array = new int [] {1, 2, 3}

// Encuentra el índice_medio

int middle_index = (array / 2) + 1

mediana doble = matriz [índice_medio]

Si el tamaño es par, entonces necesita redondear el índice medio hacia abajo usando la función Math.floor, o convertirlo a un entero a través de “(int) middle_index” si no necesita preservar el lugar decimal.

int [] array = new int [] {1, 2, 3, 4}

// Encuentra el índice_medio a través de Math.floor

double middle_index = Math.floor (array.length / 2)

// o encuéntralo a través del reparto de enteros. Tenga en cuenta que, en este ejemplo, (int) es innecesario porque Java realizará una división entera,
// Solo estoy poniendo el (int) para demostrar el hecho de que la respuesta deberá ser un número entero.

int middle_index = (int) array.length / 2

mediana doble = (matriz [índice_medio] + matriz [índice_medio + 1]) / 2

La programación más simple es ordenar su matriz y elegir el valor en el medio si la longitud de la matriz es impar o el promedio de los valores que se extienden en el medio si la longitud es par.

Si desea un algoritmo más eficiente, consulte el algoritmo de selección: Wikipedia. Dentro de ese artículo, busque Quickselect (derivado de Quicksort) e introselect que evita el peor comportamiento de Quickselect.

La mediana no se calcula, es el valor en el medio de una matriz ordenada, si la cantidad de números es par es el valor de los dos en el medio dividido por dos.