home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1985 May
/
1985-05.d64
/
quicksort_64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
1KB
|
35 lines
100 m=8192:gosub500:goto150
110 z=m+int(y/8)*320+int(x/8)*8+(yand7)
120 pokez,peek(z)ort%(xand7):return
130 z=m+int(y/8)*320+int(x/8)*8+(yand7)
140 pokez,peek(z)andnott%(xand7):return
150 fori=0to7:t%(7-i)=2^i:next
160 sys49152:poke53272,peek(53272)or8:poke53265,peek(53265)or32
170 s=99:diml%(s),m%(s),s%(20)
180 fort=1tos:l%(t)=rnd(0)*s*3+12:x=l%(t)
190 m%(t)=2*t:y=m%(t):gosub110:next:ti$="000000":s%(1)=1:s%(2)=s:p=2
200 l=s%(p):p=p-1:f=s%(p):p=p-1:i=f
210 j=l:d=l%((f+l)/2)
220 ifl%(i)<dtheni=i+1:goto220
230 ifl%(j)>dthenj=j-1:goto230
240 ifi<=jthengosub330:t=l%(i):l%(i)=l%(j):l%(j)=t:i=i+1:j=j-1
250 ifi<=jthen220
260 iff<jthenp=p+1:s%(p)=f:p=p+1:s%(p)=j
270 f=i:iff<lthen210
280 ifp<>0then200
290 t$=ti$:poke198,0
300 geta$:ifa$=""then300
310 poke53265,peek(53265)and223:print"[147]":poke53272,21
320 prints"items sorted in "mid$(t$,3,2)":"right$(t$,2)".":end
330 y=m%(i):x=l%(i):gosub130:y=m%(j):x=l%(j):gosub130
340 y=m%(i):x=l%(j):gosub110:y=m%(j):x=l%(i):gosub110:return
500 x=0:fori=49152to49190:reada:x=x+a:pokei,a:next
510 ifx<>6678thenprint"error in data statements.":stop
520 return
530 data 169,32,133,252,162,32,169
540 data 0,168,145,251,200,208,251
550 data 230,252,202,208,246,169,4
560 data 133,254,170,160,0,169,16
570 data 145,253,200,208,251,230,254
580 data 202,208,246,96