Translate

sábado, 22 de agosto de 2026

Quickysort en Factor


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 Factor. 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: 

USING: kernel sequences math combinators ;


: quicksort ( seq -- sorted )

    dup empty? [

        drop { }

    ] [

        unclip swap

        [ over <= ] partition

        [ quicksort ] bi@

        rot prefix append

    ] if ;


 

No hay comentarios.:

Publicar un comentario