2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -0,0 +1,18 @@
|
|||
defmodule Sort do
|
||||
def permutation_sort([]), do: []
|
||||
def permutation_sort(list) do
|
||||
Enum.find(permutation(list), fn [h|t] -> in_order?(t, h) end)
|
||||
end
|
||||
|
||||
defp permutation([]), do: [[]]
|
||||
defp permutation(list) do
|
||||
for x <- list, y <- permutation(list -- [x]), do: [x|y]
|
||||
end
|
||||
|
||||
defp in_order?([], _), do: true
|
||||
defp in_order?([h|_], pre) when h<pre, do: false
|
||||
defp in_order?([h|t], _), do: in_order?(t, h)
|
||||
end
|
||||
|
||||
IO.inspect list = for _ <- 1..9, do: :rand.uniform(20)
|
||||
IO.inspect Sort.permutation_sort(list)
|
||||
Loading…
Add table
Add a link
Reference in a new issue