Introducción
En este laboratorio, exploraremos el algoritmo de clasificación por cubetas (bucket sort) en JavaScript. El bucket sort es un algoritmo de clasificación que funciona distribuyendo los elementos de una matriz en un número de cubetas. Cada cubeta se ordena por separado, ya sea utilizando un algoritmo de clasificación diferente o aplicando recursivamente el algoritmo de clasificación por cubetas. Este laboratorio te brindará la oportunidad de implementar este algoritmo y adquirir una comprensión más profunda de cómo funciona.
Algoritmo de clasificación por cubetas (Bucket Sort)
Para utilizar el algoritmo de clasificación por cubetas y ordenar una matriz de números, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Encuentre los valores mínimo y máximo de la matriz dada utilizando
Math.min(),Math.max()y el operador de propagación (...). - Cree la cantidad adecuada de
cubetas(matrices vacías) utilizandoArray.from()yMath.floor(). - Rellene cada cubeta con los elementos adecuados de la matriz utilizando
Array.prototype.forEach(). - Ordene cada cubeta y agréguela al resultado utilizando
Array.prototype.reduce(), el operador de propagación (...) yArray.prototype.sort().
A continuación, se muestra una implementación de ejemplo del algoritmo de clasificación por cubetas en JavaScript:
const bucketSort = (arr, size = 5) => {
const min = Math.min(...arr);
const max = Math.max(...arr);
const buckets = Array.from(
{ length: Math.floor((max - min) / size) + 1 },
() => []
);
arr.forEach((val) => {
buckets[Math.floor((val - min) / size)].push(val);
});
return buckets.reduce((acc, b) => [...acc, ...b.sort((a, b) => a - b)], []);
};
Para probar el algoritmo, ejecute el siguiente código:
bucketSort([6, 3, 4, 1]); // [1, 3, 4, 6]
Resumen
¡Felicidades! Has completado el laboratorio de clasificación por cubetas (Bucket Sort). Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.