Sorting algorithms/Stooge sort: Difference between revisions
Rename Perl 6 -> Raku, alphabetize, minor clean-up
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 229:
return 0;
}</lang>
=={{header|C sharp|C#}}==▼
<lang C sharp|C#> public static void Sort<T>(List<T> list) where T : IComparable {▼
if (list.Count > 1) {▼
StoogeSort(list, 0, list.Count - 1);▼
}▼
}▼
private static void StoogeSort<T>(List<T> L, int i, int j) where T : IComparable {▼
if (L[j].CompareTo(L[i])<0) {▼
T tmp = L[i];▼
L[i] = L[j];▼
L[j] = tmp;▼
}▼
if (j - i > 1) {▼
int t = (j - i + 1) / 3;▼
StoogeSort(L, i, j - t);▼
StoogeSort(L, i + t, j);▼
StoogeSort(L, i, j - t);▼
}▼
}</lang>▼
=={{header|C++}}==
Line 277 ⟶ 297:
15 16 18 19
</pre>
▲=={{header|C sharp|C#}}==
▲<lang C sharp|C#> public static void Sort<T>(List<T> list) where T : IComparable {
▲ if (list.Count > 1) {
▲ StoogeSort(list, 0, list.Count - 1);
▲ }
▲ }
▲ private static void StoogeSort<T>(List<T> L, int i, int j) where T : IComparable {
▲ if (L[j].CompareTo(L[i])<0) {
▲ T tmp = L[i];
▲ L[i] = L[j];
▲ L[j] = tmp;
▲ }
▲ if (j - i > 1) {
▲ int t = (j - i + 1) / 3;
▲ StoogeSort(L, i, j - t);
▲ StoogeSort(L, i + t, j);
▲ StoogeSort(L, i, j - t);
▲ }
▲ }</lang>
=={{header|Clojure}}==
Line 435:
{{out}}
[-6, -5, -2, 1, 3, 3, 4, 5, 7, 10]
=={{header|Eiffel}}==
<lang Eiffel>
Line 510:
-2 0 2 5 7 66
</pre>
=={{header|Elena}}==
ELENA 4.x :
Line 676 ⟶ 677:
end subroutine
end program</lang>
=={{header|FreeBASIC}}==
<lang freebasic>' version 23-10-2016
Line 922 ⟶ 924:
{{out}}
<pre>[1, 2, 3, 4, 9, 10, 13]</pre>
=={{header|jq}}==
{{works with|jq|1.4}}
Line 1,488 ⟶ 1,491:
stooge(\@a);
print "After @a\n";
</lang>▼
=={{header|Perl 6}}==▼
<lang perl6>sub stoogesort( @L, $i = 0, $j = @L.end ) {▼
@L[$j,$i] = @L[$i,$j] if @L[$i] > @L[$j];▼
my $interval = $j - $i;▼
if $interval > 1 {▼
my $t = ( $interval + 1 ) div 3;▼
stoogesort( @L, $i , $j-$t );▼
stoogesort( @L, $i+$t, $j );▼
stoogesort( @L, $i , $j-$t );▼
}▼
return @L;▼
}▼
my @L = 1, 4, 5, 3, -6, 3, 7, 10, -2, -5;▼
stoogesort(@L).Str.say;▼
</lang>
Line 1,770 ⟶ 1,753:
(stooge-sort xs i (- j t)))
xs)
▲</lang>
(formerly Perl 6)
▲<lang perl6>sub stoogesort( @L, $i = 0, $j = @L.end ) {
▲ @L[$j,$i] = @L[$i,$j] if @L[$i] > @L[$j];
▲ my $interval = $j - $i;
▲ if $interval > 1 {
▲ my $t = ( $interval + 1 ) div 3;
▲ stoogesort( @L, $i , $j-$t );
▲ stoogesort( @L, $i+$t, $j );
▲ stoogesort( @L, $i , $j-$t );
▲ }
▲ return @L;
▲}
▲my @L = 1, 4, 5, 3, -6, 3, 7, 10, -2, -5;
▲stoogesort(@L).Str.say;
</lang>
Line 1,941 ⟶ 1,945:
See it running in your browser by [https://scastie.scala-lang.org/QTCrb5SNTVqDNC6oRQRmZw Scastie (JVM)].
=={{header|Sidef}}==
<lang ruby>func stooge(x, i, j) {
|