Quicksort en Python
Un ordenamiento de divide y vencerás, corto de escribir y rápido en la práctica.
def quicksort(elementos):
if len(elementos) <= 1:
return elementos
pivote = elementos[len(elementos) // 2]
izquierda = [x for x in elementos if x < pivote]
medio = [x for x in elementos if x == pivote]
derecha = [x for x in elementos if x > pivote]
return quicksort(izquierda) + medio + quicksort(derecha)
Cómo funciona
- Elige el elemento del medio como pivote.
- Comprensiones de listas separan los valores menores, iguales y mayores que el pivote.
- Ordena ambos lados recursivamente y une las tres partes.
Palabras clave y builtins usados aquí
defforiflenreturn
El intento, en números
- Líneas
- 8
- Caracteres a escribir
- 305
- Tokens
- 80
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 48 segundos.
Paso 3 de 5 en Algoritmos; paso 53 de 72 en Fundamentos del lenguaje.