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 APL. 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:
∇ r←qsort x
:If 0=≢x
r←⍬
:Else
p←⊃x
r←(qsort x[x<p]),p,(qsort x[x>p])
:EndIf
∇

No hay comentarios.:
Publicar un comentario