Clasificación Merge 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 Merge Sort en JavaScript. Merge Sort es un algoritmo de clasificación popular basado en la técnica divide y vencerás que es eficiente y comúnmente utilizado en la práctica. Al final de este laboratorio, tendrás una comprensión sólida de cómo funciona Merge Sort y cómo implementarlo en tus propios proyectos de JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL 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/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") subgraph Lab Skills javascript/variables -.-> lab-28496{{"Clasificación Merge en JavaScript"}} javascript/data_types -.-> lab-28496{{"Clasificación Merge en JavaScript"}} javascript/arith_ops -.-> lab-28496{{"Clasificación Merge en JavaScript"}} javascript/comp_ops -.-> lab-28496{{"Clasificación Merge en JavaScript"}} javascript/cond_stmts -.-> lab-28496{{"Clasificación Merge en JavaScript"}} javascript/array_methods -.-> lab-28496{{"Clasificación Merge en JavaScript"}} end

Algoritmo de clasificación Merge

Para practicar la codificación utilizando el algoritmo de clasificación Merge, sigue estos pasos:

  1. Abre la Terminal/SSH y escribe node.
  2. Utiliza la recursividad para ordenar una matriz de números.
  3. Si la longitud de la matriz es menor que 2, devuelve la matriz.
  4. Utiliza Math.floor() para calcular el punto medio de la matriz.
  5. Utiliza Array.prototype.slice() para dividir la matriz en dos y llama recursivamente a mergeSort() en las submatrices creadas.
  6. Finalmente, utiliza Array.from() y Array.prototype.shift() para combinar las dos submatrices ordenadas en una.

Aquí está el código:

const mergeSort = (arr) => {
  if (arr.length < 2) return arr;
  const mid = Math.floor(arr.length / 2);
  const l = mergeSort(arr.slice(0, mid));
  const r = mergeSort(arr.slice(mid, arr.length));
  return Array.from({ length: l.length + r.length }, () => {
    if (!l.length) return r.shift();
    else if (!r.length) return l.shift();
    else return l[0] > r[0] ? r.shift() : l.shift();
  });
};

Prueba con este ejemplo:

mergeSort([5, 1, 4, 2, 3]); // [1, 2, 3, 4, 5]

Resumen

¡Felicidades! Has completado el laboratorio de clasificación Merge. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.