Translate

martes, 28 de julio de 2026

Quickysort en Elixir


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

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


defmodule QuickSort do

  def sort([]), do: []


  def sort([pivot | rest]) do

    smaller =

      Enum.filter(rest, &(&1 <= pivot))


    greater =

      Enum.filter(rest, &(&1 > pivot))


    sort(smaller) ++ [pivot] ++ sort(greater)

  end

end


Y listo!!

No hay comentarios.:

Publicar un comentario