Translate

lunes, 27 de julio de 2026

Quickysort en Elm


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 ErlangRusthaskell y lisp

Ahora le toca a Elm. 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: 


module QuickSort exposing (quicksort)


quicksort : List comparable -> List comparable

quicksort list =

    case list of

        [] ->  []


        pivot :: rest ->

            let

                smaller =

                    List.filter (\x -> x <= pivot) rest


                greater =

                    List.filter (\x -> x > pivot) rest

            in

            quicksort smaller ++ [ pivot ] ++ quicksort greater


Y listo!!

No hay comentarios.:

Publicar un comentario