typestar

Mezclar dos listas ordenadas en Python

La mitad de mezcla del merge sort — dos punteros sobre entradas ordenadas.

def fusionar_ordenadas(izquierda, derecha):
    salida, i, j = [], 0, 0
    while i < len(izquierda) and j < len(derecha):
        if izquierda[i] <= derecha[j]:
            salida.append(izquierda[i])
            i += 1
        else:
            salida.append(derecha[j])
            j += 1
    return salida + izquierda[i:] + derecha[j:]

Cómo funciona

  1. Recorre dos listas ordenadas con los índices i y j.
  2. Siempre agrega a la salida la cabeza más pequeña.
  3. Al agotarse una lista, añade lo que quede de la otra.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
10
Caracteres a escribir
263
Tokens
89
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 56 segundos.

Escribe este fragmento

Paso 9 de 10 en Colecciones; paso 31 de 72 en Fundamentos del lenguaje.

← Anterior Siguiente →