defmodule Quicksort do def qsort([]) do [] end def qsort([pivot | tail]) do qsort( lc x inlist tail, x < pivot, do: x ) ++ [pivot] ++ qsort( lc x inlist tail,x >= pivot, do: x ) end end IO.puts inspect(Quicksort.qsort([10,9,1,3,5,6,4,2,8,7]))
defmodule QuickSort do def sort([]), do: [] def sort([head|tail]) do {lesser, greater} = Enum.partition(tail, &(&1 < head)) sort(lesser) ++ [head] ++ sort(greater) end end IO.inspect QuickSort.sort([1,6,3,4,2,5])