Un algoritmo que me gusta mucho es el quicksort, porque es un algoritmo por demás claro. Ya he escrito lo fácil que es implementarlo en Erlang, Rust, haskell y lisp
Ahora le toca a Joy. Básicamente, el algoritmo toma un pivote y agrupa los menores que el pivote al principio y los mayores al final y aplica quicksort a estos dos grupos. Y si la lista es vacía o tiene un elemento, ya está ordenada.
Vamos al código:
DEFINE qsort ==
[small]
[]
[uncons [>] split]
[swapd cons concat]
binrec.
La clave es binrec: recibe cuatro programas entre corchetes:
- [small] → condición de terminación.
- [] → qué hacer cuando la lista ya es pequeña.
- [uncons [>] split] → separar usando el primer elemento como pivot.
- [swapd cons concat] → recombinar los resultados.

No hay comentarios.:
Publicar un comentario