En este artículo, veremos cómo encontrar la mediana de una array usando JavaScript.
Ejemplos:
Input arr1 : [1 4 7 9] Output : 5.5 Explanation : The median of the two sorted array is the middle elements which is 5 if the arrayLength =arr1.length + arr2.length is odd if the array length is even then it will be the average of two number Input: arr1 : [5 3 1 8 90] Output: 5 Explanation : The median is average of two number because the array.length is even for this case.
Enfoque: Aquí primero ordenamos la array y luego encontraremos la longitud de la array. Si la longitud de la array es par, la mediana será arr[(arr.length)/2] +arr[((arr.length)/2)+1]. Si la longitud de la array es impar, la mediana será un elemento intermedio.
Javascript
<script> function medianof2Arr(arr1) { var concat = arr1; concat = concat.sort( function (a, b) { return a - b }); console.log(concat); var length = concat.length; if (length % 2 == 1) { // If length is odd console.log(concat[(length / 2) - .5]) return concat[(length / 2) - .5] } else { console.log((concat[length / 2] + concat[(length / 2) - 1]) / 2); return (concat[length / 2] + concat[(length / 2) - 1]) / 2; } } arr1 = [1, 4, 7, 9] medianof2Arr(arr1) </script>
Producción:
5.5
Complejidad del tiempo:
O(n + m)
Enfoque 2: aquí primero hemos creado la variable central que tiene el valor central independientemente de la longitud, ya sea que la longitud de la array sea par o impar. Ahora, después de eso, ordenamos la array evitando la mutación. Mutación significa cambiar el nombre del objeto con otro nombre de objeto o pasar el objeto a otro objeto llamado mutación.
Se puede hacer con tipos de datos de referencia que son arrays, Objeto , así que por ahora evite esto. Después de eso, si la longitud de la array es par, entonces tenemos los dos valores en la array en pos arr((arr.length)/2) + arr(((arr.length)/2) +1). Luego tome la media de estos dos números y regrese como una mediana.
Javascript
<script> function median_of_arr(arr) { const middle = (arr.length + 1) / 2; // Avoid mutating when sorting const sorted = [...arr].sort((a, b) => a - b); const isEven = sorted.length % 2 === 0; return isEven ? (sorted[middle - 1.5] + sorted[middle - 0.5]) / 2 : sorted[middle - 1]; } var arr = [1, 4, 7, 9]; console.log(median_of_arr(arr)); </script>
Producción:
5.5
Complejidad del tiempo:
O(n+m)
Publicación traducida automáticamente
Artículo escrito por rohit2sahu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA