Sorting algorithms/Stooge sort: Difference between revisions
Content added Content deleted
m (added Category:Sorting) |
|||
Line 1,996: | Line 1,996: | ||
test stoogeSort. |
test stoogeSort. |
||
test printNl.</lang> |
test printNl.</lang> |
||
Here is a "functional" variation (a 1:1 adaption of the original algorithm): |
|||
<lang smalltalk>stoogesort := [:L :i :j | |
|||
(L at:i) > (L at:j) ifTrue:[ |
|||
L swap:i with:j |
|||
]. |
|||
(j - i + 1) > 2 ifTrue:[ |
|||
t := ((j - i + 1) / 3) floor. |
|||
stoogesort value:L value:i value:j-t. |
|||
stoogesort value:L value:i+t value:j. |
|||
stoogesort value:L value:i value:j-t. |
|||
]. |
|||
]. |
|||
a := #(1 4 5 3 -6 3 7 10 -2 -5 7 5 9 -3 7) copy. |
|||
stoogesort value:a value:1 value:a size. |
|||
Transcript showCR:a</lang> |
|||
Output: |
|||
#(-6 -5 -3 -2 1 3 3 4 5 5 7 7 7 9 10) |
|||
=={{header|Swift}}== |
=={{header|Swift}}== |