Sorting algorithms/Quicksort: Difference between revisions
Content added Content deleted
imported>Rcmlz |
(Added Chipmunk Basic) |
||
Line 2,625: | Line 2,625: | ||
-31 0 1 2 2 4 65 83 99 782 |
-31 0 1 2 2 4 65 83 99 782 |
||
</pre> |
</pre> |
||
==={{header|Chipmunk Basic}}=== |
|||
{{works with|Chipmunk Basic|3.6.4}} |
|||
{{trans|Yabasic}} |
|||
<syntaxhighlight lang="qbasic">100 dim array(15) |
|||
110 a = 0 |
|||
120 b = ubound(array) |
|||
130 randomize timer |
|||
140 for i = a to b |
|||
150 array(i) = rnd(1)*1000 |
|||
160 next i |
|||
170 print "unsort "; |
|||
180 for i = a to b |
|||
190 print using "####";array(i); |
|||
200 if i = b then print ""; else print ", "; |
|||
210 next i |
|||
220 quicksort(array(),a,b) |
|||
230 print : print " sort "; |
|||
240 for i = a to b |
|||
250 print using "####";array(i); |
|||
260 if i = b then print ""; else print ", "; |
|||
270 next i |
|||
280 print |
|||
290 end |
|||
300 sub quicksort(array(),l,r) |
|||
310 size = r-l+1 |
|||
320 if size < 2 then return |
|||
330 i = l |
|||
340 j = r |
|||
350 pivot = array(l+int(size/2)) |
|||
360 rem repeat |
|||
370 while array(i) < pivot |
|||
380 i = i+1 |
|||
390 wend |
|||
400 while pivot < array(j) |
|||
410 j = j-1 |
|||
420 wend |
|||
430 if i <= j then temp = array(i) : array(i) = array(j) : array(j) = temp : i = i+1 : j = j-1 |
|||
440 if i <= j then goto 360 |
|||
450 if l < j then quicksort(array(),l,j) |
|||
460 if i < r then quicksort(array(),i,r) |
|||
470 end sub</syntaxhighlight> |
|||
==={{header|IS-BASIC}}=== |
==={{header|IS-BASIC}}=== |