Introducción
En este laboratorio, exploraremos el concepto de clasificación estable en JavaScript. La clasificación estable es una técnica que conserva el orden de los elementos en una matriz cuando sus valores son iguales. Utilizaremos una función que utiliza los métodos Array.prototype.map() y Array.prototype.sort() para implementar la clasificación estable de una matriz.
Clasificación estable
Para realizar la clasificación estable de una matriz y conservar los índices iniciales de los elementos con valores iguales, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Utilice
Array.prototype.map()para emparejar cada elemento de la matriz de entrada con su índice correspondiente. - Utilice
Array.prototype.sort()junto con una funcióncomparepara ordenar la lista mientras se conserva el orden inicial si los elementos comparados son iguales. - Utilice
Array.prototype.map()nuevamente para convertir los elementos de la matriz de vuelta a su forma inicial. - La matriz original no se modifica, en su lugar se devuelve una nueva matriz.
A continuación, se muestra una implementación de la función stableSort en JavaScript:
const stableSort = (arr, compare) =>
arr
.map((item, index) => ({ item, index }))
.sort((a, b) => compare(a.item, b.item) || a.index - b.index)
.map(({ item }) => item);
Puede llamar a la función stableSort con una matriz y una función compare para obtener una nueva matriz con los elementos ordenados, como se muestra a continuación:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const stable = stableSort(arr, () => 0); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Resumen
¡Felicitaciones! Has completado el laboratorio de Clasificación estable. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.