Saltar al contenido

Merge sort

JavaScript · Unidad 22: Buscar y ordenar

Dos listas que ya vienen ordenadas se juntan en una sola sin volver a ordenar nada: mira la punta de cada una y toma la más chica.

Como las dos están ordenadas, la punta más chica es el menor de todos los que quedan.

const a = [2, 8];
const b = [3, 5];
const res = [];
if (a[0] <= b[0]) {
  res.push(a.shift());
} else {
  res.push(b.shift());
}
console.log(res, a, b);

Imprime

[ 2 ] [ 8 ] [ 3, 5 ]

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Completa el código

    Completa para que la mezcla tome siempre la punta más chica.

  2. 2. Predice la salida

    Se mezclan dos listas y después se imprimen las dos originales. ¿Qué imprime?

  3. 3. Encuentra el bug

    mezclar debería juntar las dos listas completas y dar [ 2, 3, 5, 8 ]. ¿Qué línea tiene el error?

  4. 4. Opción múltiple

    Mezclar dos listas ordenadas de 50 números cada una, ¿cuánto trabajo es?

  5. 5. Ordena las líneas

    Ordena la función que parte una lista en dos mitades y las regresa dentro de un arreglo, la izquierda primero.

  6. 6. Predice la salida

    Cada llamada imprime la lista que le tocó. ¿Qué imprime?

  7. 7. Completa el código

    Completa para que la mitad izquierda llegue ordenada a la mezcla.

  8. 8. Encuentra el caso que falla

    ordenar(ns) regresa una lista nueva con los números de menor a mayor; con la lista vacía regresa una lista vacía. ¿Con qué llamada falla?

  9. 9. Predice la salida

    Se ordena la lista y después se imprime la original. ¿Qué imprime?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →