Sorting algorithms/Stooge sort: Difference between revisions
m
QuickBASIC and BBC BASIC moved to the BASIC section.
m (QuickBASIC and BBC BASIC moved to the BASIC section.) |
m (QuickBASIC and BBC BASIC moved to the BASIC section.) |
||
Line 282:
=={{header|BASIC}}==
==={{header|BBC BASIC}}===▼
<syntaxhighlight lang="bbcbasic"> DIM test%(9)▼
test%() = 4, 65, 2, -31, 0, 99, 2, 83, 782, 1▼
PROCstoogesort(test%(), 0, DIM(test%(),1))▼
FOR i% = 0 TO 9▼
PRINT test%(i%) ;▼
NEXT▼
PRINT▼
END▼
DEF PROCstoogesort(l%(), i%, j%)▼
LOCAL t%▼
IF l%(j%) < l%(i%) SWAP l%(i%), l%(j%)▼
IF j% - i% > 1 THEN▼
t% = (j% - i% + 1)/3▼
PROCstoogesort(l%(), i%, j%-t%)▼
PROCstoogesort(l%(), i%+t%, j%)▼
PROCstoogesort(l%(), i%, j%-t%)▼
ENDIF▼
ENDPROC</syntaxhighlight>▼
{{out}}▼
<pre>▼
-31 0 1 2 2 4 65 83 99 782▼
</pre>▼
==={{header|QuickBASIC}}===
{{works with|QuickBASIC|7.1}}
Line 334 ⟶ 360:
Before: 11 50 11 37 97 94 92 70 92 57 88
After: 11 11 37 50 57 70 88 92 92 94 97
▲</pre>
▲=={{header|BBC BASIC}}==
▲<syntaxhighlight lang="bbcbasic"> DIM test%(9)
▲ test%() = 4, 65, 2, -31, 0, 99, 2, 83, 782, 1
▲ PROCstoogesort(test%(), 0, DIM(test%(),1))
▲ FOR i% = 0 TO 9
▲ PRINT test%(i%) ;
▲ NEXT
▲ PRINT
▲ END
▲ DEF PROCstoogesort(l%(), i%, j%)
▲ LOCAL t%
▲ IF l%(j%) < l%(i%) SWAP l%(i%), l%(j%)
▲ IF j% - i% > 1 THEN
▲ t% = (j% - i% + 1)/3
▲ PROCstoogesort(l%(), i%, j%-t%)
▲ PROCstoogesort(l%(), i%+t%, j%)
▲ PROCstoogesort(l%(), i%, j%-t%)
▲ ENDIF
▲ ENDPROC</syntaxhighlight>
▲{{out}}
▲<pre>
▲ -31 0 1 2 2 4 65 83 99 782
</pre>
|