defmodule Selection do
def sort(list) when is_list(list)dodo_selection(list,[])
end
def do_selection([head|[]], acc)do
acc ++[head]
end
def do_selection(list, acc)do
min =min(list)do_selection(:lists.delete(min, list), acc ++[min])
end
defp min([first|[second|[]]])dosmaller(first, second)
end
defp min([first|[second|tail]])domin([smaller(first, second)|tail])
end
defp smaller(e1, e2)doif e1 <= e2 do
e1
else
e2
end
end
end
Selection.sort([100,4,10,6,9,3])|> IO.inspect