No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Calculando la mediana en una lista impar

12/27
Recursos

Aportes 5

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Math.round()

Obtiene el siguiente numero mas cercano( si es >.5 redondea hacia arriba, si es <.5 redonda hacia abajo)

Math.round(2.5) // output: 3
Math.round(2.49) // output: 2

Math.floor()

Obtiene el numero entero anterior mas cercano (redondear hacia abajo).

Math.floor(2.99) // output: 2
Math.floor(2.5) // output: 2
Math.floor(2.49) // output: 2

Math.ceil()

Obtiene el numero entero siguiente mas cercano (redondear hacia arriba).

Math.ceil(2.5) // output: 3
Math.ceil(2.49) // output: 3
Math.ceil(2.1) // output: 3

Aquí mi solución para Mediana Par:

    if(listaEsPar){
        
        const primerIndexListaPar = lista.length / 2;
        const segundoIndexListaPar = Math.floor((lista.length - 1) / 2) ;

        const valorPrimerIndexListaPar = lista[primerIndexListaPar];
        const valorSegundoIndexListaPar = lista[segundoIndexListaPar];
        
        const mediana = (valorPrimerIndexListaPar + valorSegundoIndexListaPar)  / 2 ;

        console.log(valorPrimerIndexListaPar);
        console.log(valorSegundoIndexListaPar);
        console.log(mediana);
    }
<code> 

Les comparto mi solución para calcular la mediana

Para encontrar la mediana sin importar si la lista es par o impar:

const calculateMedian = (arr) => {
	const median = arr.length / 2;
	const ordenedArray = arr.sort((a, b) => a - b);
	return arr.length % 2 === 0
		? (ordenedArray[median] + ordenedArray[median - 1]) / 2
		: ordenedArray[Math.floor(median)];
};

Reto cumplido, otra forma de redondear es usando .toFixed(0);

(2.5).toFixed(0);
//  3
(2.4).toFixed(0);
//  2
let array = [1,2,3,4,5];

function esPar(array) {
    let elements = array.length % 2
    return elements == 0;
}

function calcularMediana (array){
    let mitad = array.length / 2;
    if (esPar(array)){
        let mediana = (array[mitad-1] + array[mitad]) / 2
        return mediana;
    } else {
        let mediana = (array[(mitad-1).toFixed(0)]);
        return mediana
    }
}

calcularMediana(array);
// 3