Sorting algorithms/Stooge sort: Difference between revisions

Added Elixir
m (→‎{{header|REXX}}: removed the use of a literal for writing output.)
(Added Elixir)
Line 222:
return 0;
}</lang>
 
 
=={{header|C++}}==
Line 403 ⟶ 402:
{{out}}
[-6, -5, -2, 1, 3, 3, 4, 5, 7, 10]
=={{header|Eiffel}}==
<lang Eiffel>
Line 476:
sorted:
-2 0 2 5 7 66
</pre>
 
=={{header|Elixir}}==
<lang elixir>defmodule Sort do
def stooge_sort(list) do
stooge_sort(List.to_tuple(list), 0, length(list)-1) |> Tuple.to_list
end
defp stooge_sort(tuple, i, j) do
if (vj = elem(tuple, j)) < (vi = elem(tuple, i)) do
tuple = put_elem(tuple,i,vj) |> put_elem(j,vi)
end
if j - i > 1 do
t = div(j - i + 1, 3)
tuple
|> stooge_sort(i, j-t)
|> stooge_sort(i+t, j)
|> stooge_sort(i, j-t)
else
tuple
end
end
end
 
(for _ <- 1..20, do: :rand.uniform(20)) |> IO.inspect
|> Sort.stooge_sort |> IO.inspect</lang>
 
{{out}}
<pre>
[18, 8, 19, 19, 17, 17, 1, 5, 17, 9, 13, 6, 7, 19, 1, 6, 11, 20, 17, 12]
[1, 1, 5, 6, 6, 7, 8, 9, 11, 12, 13, 17, 17, 17, 17, 18, 19, 19, 19, 20]
</pre>
 
Line 792 ⟶ 823:
 
-9 -6 1 4</lang>
 
=={{header|MAXScript}}==
<lang MAXScript>fn stoogeSort arr i: j: =
Line 1,399 ⟶ 1,431:
Stop_Data:
EndDataSection</lang>
 
=={{header|Python}}==
<lang python>>>> data = [1, 4, 5, 3, -6, 3, 7, 10, -2, -5, 7, 5, 9, -3, 7]
Line 1,669 ⟶ 1,702:
test stoogeSort.
test printNl.</lang>
 
=={{header|Swift}}==
<lang Swift>func stoogeSort(inout arr:[Int], _ i:Int = 0, var _ j:Int = -1) {
Line 1,778 ⟶ 1,812:
PRINT
RETURN</lang>
 
=={{header|XPL0}}==
<lang XPL0>code ChOut=8, IntOut=11; \intrinsic routines
Anonymous user