Sorting algorithms/Stooge sort: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: removed the use of a literal for writing output.) |
(Added Elixir) |
||
Line 222: | Line 222: | ||
return 0; |
return 0; |
||
}</lang> |
}</lang> |
||
=={{header|C++}}== |
=={{header|C++}}== |
||
Line 403: | Line 402: | ||
{{out}} |
{{out}} |
||
[-6, -5, -2, 1, 3, 3, 4, 5, 7, 10] |
[-6, -5, -2, 1, 3, 3, 4, 5, 7, 10] |
||
=={{header|Eiffel}}== |
=={{header|Eiffel}}== |
||
<lang Eiffel> |
<lang Eiffel> |
||
Line 476: | Line 476: | ||
sorted: |
sorted: |
||
-2 0 2 5 7 66 |
-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> |
</pre> |
||
Line 792: | Line 823: | ||
-9 -6 1 4</lang> |
-9 -6 1 4</lang> |
||
=={{header|MAXScript}}== |
=={{header|MAXScript}}== |
||
<lang MAXScript>fn stoogeSort arr i: j: = |
<lang MAXScript>fn stoogeSort arr i: j: = |
||
Line 1,399: | Line 1,431: | ||
Stop_Data: |
Stop_Data: |
||
EndDataSection</lang> |
EndDataSection</lang> |
||
=={{header|Python}}== |
=={{header|Python}}== |
||
<lang python>>>> data = [1, 4, 5, 3, -6, 3, 7, 10, -2, -5, 7, 5, 9, -3, 7] |
<lang python>>>> data = [1, 4, 5, 3, -6, 3, 7, 10, -2, -5, 7, 5, 9, -3, 7] |
||
Line 1,669: | Line 1,702: | ||
test stoogeSort. |
test stoogeSort. |
||
test printNl.</lang> |
test printNl.</lang> |
||
=={{header|Swift}}== |
=={{header|Swift}}== |
||
<lang Swift>func stoogeSort(inout arr:[Int], _ i:Int = 0, var _ j:Int = -1) { |
<lang Swift>func stoogeSort(inout arr:[Int], _ i:Int = 0, var _ j:Int = -1) { |
||
Line 1,778: | Line 1,812: | ||
PRINT |
PRINT |
||
RETURN</lang> |
RETURN</lang> |
||
=={{header|XPL0}}== |
=={{header|XPL0}}== |
||
<lang XPL0>code ChOut=8, IntOut=11; \intrinsic routines |
<lang XPL0>code ChOut=8, IntOut=11; \intrinsic routines |