Implementando el bucket sort en JavaScript

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} javascript/data_types -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} javascript/arith_ops -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} javascript/comp_ops -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} javascript/higher_funcs -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} javascript/spread_rest -.-> lab-28181{{"Implementando el bucket sort en JavaScript"}} end

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:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Encuentre los valores mínimo y máximo de la matriz dada utilizando Math.min(), Math.max() y el operador de propagación (...).
  3. Cree la cantidad adecuada de cubetas (matrices vacías) utilizando Array.from() y Math.floor().
  4. Rellene cada cubeta con los elementos adecuados de la matriz utilizando Array.prototype.forEach().
  5. Ordene cada cubeta y agréguela al resultado utilizando Array.prototype.reduce(), el operador de propagación (...) y Array.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.