00000000: 39 34 33 30 20 50 52 4F 43 20 51 55 49 43 4B 53 |9430 PROC QUICKS|
00000010: 4F 52 54 28 4C 45 4E 44 2C 52 45 4E 44 29 20 0D |ORT(LEND,REND) .|
00000020: 39 34 33 35 20 20 20 4C 50 3A 3D 4C 45 4E 44 3B |9435 LP:=LEND;|
00000030: 20 52 50 3A 3D 52 45 4E 44 0D 39 34 34 30 20 20 | RP:=REND.9440 |
00000040: 20 43 4F 4D 50 24 3A 3D 4E 41 4D 45 24 28 28 4C | COMP$:=NAME$((L|
00000050: 50 2B 52 50 29 20 44 49 56 20 32 29 0D 39 34 34 |P+RP) DIV 2).944|
00000060: 35 20 20 20 52 45 50 45 41 54 20 0D 39 34 35 30 |5 REPEAT .9450|
00000070: 20 20 20 20 20 57 48 49 4C 45 20 4E 41 4D 45 24 | WHILE NAME$|
00000080: 28 4C 50 29 3C 43 4F 4D 50 24 20 44 4F 0D 39 34 |(LP)<COMP$ DO.94|
00000090: 35 35 20 20 20 20 20 20 20 4C 50 3A 2B 31 0D 39 |55 LP:+1.9|
000000A0: 34 36 30 20 20 20 20 20 45 4E 44 57 48 49 4C 45 |460 ENDWHILE|
000000B0: 20 0D 39 34 36 35 20 20 20 20 20 57 48 49 4C 45 | .9465 WHILE|
000000C0: 20 4E 41 4D 45 24 28 52 50 29 3E 43 4F 4D 50 24 | NAME$(RP)>COMP$|
000000D0: 20 44 4F 0D 39 34 37 30 20 20 20 20 20 20 20 52 | DO.9470 R|
000000E0: 50 3A 2D 31 0D 39 34 37 35 20 20 20 20 20 45 4E |P:-1.9475 EN|
000000F0: 44 57 48 49 4C 45 20 0D 39 34 38 30 20 20 20 20 |DWHILE .9480 |
00000100: 20 49 46 20 4C 50 3C 3D 52 50 20 54 48 45 4E 0D | IF LP<=RP THEN.|
00000110: 39 34 38 35 20 20 20 20 20 20 20 45 58 43 48 41 |9485 EXCHA|
00000120: 4E 47 45 28 4E 41 4D 45 24 28 4C 50 29 2C 4E 41 |NGE(NAME$(LP),NA|
00000130: 4D 45 24 28 52 50 29 29 0D 39 34 39 30 20 20 20 |ME$(RP)).9490 |
00000140: 20 20 20 20 4C 50 3A 2B 31 3B 20 52 50 3A 2D 31 | LP:+1; RP:-1|
00000150: 0D 39 34 39 35 20 20 20 20 20 45 4E 44 49 46 20 |.9495 ENDIF |
00000160: 0D 39 35 30 30 20 20 20 55 4E 54 49 4C 20 4C 50 |.9500 UNTIL LP|
00000170: 3E 52 50 0D 39 35 30 35 20 20 20 49 46 20 4C 45 |>RP.9505 IF LE|
00000180: 4E 44 3C 52 50 20 54 48 45 4E 20 51 55 49 43 4B |ND<RP THEN QUICK|
00000190: 53 4F 52 54 28 4C 45 4E 44 2C 52 50 29 0D 39 35 |SORT(LEND,RP).95|
000001A0: 31 30 20 20 20 49 46 20 4C 50 3C 52 45 4E 44 20 |10 IF LP<REND |
000001B0: 54 48 45 4E 20 51 55 49 43 4B 53 4F 52 54 28 4C |THEN QUICKSORT(L|
000001C0: 50 2C 52 45 4E 44 29 0D 39 35 31 35 20 45 4E 44 |P,REND).9515 END|
000001D0: 50 52 4F 43 20 51 55 49 43 4B 53 4F 52 54 0D |PROC QUICKSORT. |
9430 PROC QUICKSORT(LEND,REND) .9435 L
P:=LEND; RP:=REND.9440 COMP$:=NAME$((L
P+RP) DIV 2).9445 REPEAT .9450 WHI
LE NAME$(LP)<COMP$ DO.9455 LP:+1.9
460 ENDWHILE .9465 WHILE NAME$(R
P)>COMP$ DO.9470 RP:-1.9475 EN
DWHILE .9480 IF LP<=RP THEN.9485
EXCHANGE(NAME$(LP),NAME$(RP)).9490
LP:+1; RP:-1.9495 ENDIF .9500
UNTIL LP>RP.9505 IF LEND<RP THEN QUICK
SORT(LEND,RP).9510 IF LP<REND THEN QUI
CKSORT(LP,REND).9515 ENDPROC QUICKSORT.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL