Translate

domingo, 18 de febrero de 2024

Quickysort en Erlang


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 Rust, haskell y lisp

Ahora le toca a Erlang. Básicamente el algoritmo toma un pivot y agrupa los menores del pivot al principio y los mayores al final y aplica quicksort a estos 2 grupos. Y si la lista es vacia o tiene un elemento, ya esta ordenada. 

Vamos al código: 


sort([Pivot|T]) ->

    sort([ X || X <- T, X < Pivot]) ++

    [Pivot] ++

    sort([ X || X <- T, X >= Pivot]);

sort([]) -> [].


Y listo!!