10 REM ERSTELLEN EINES FELDES ZUM 20 REM SORTIEREN. 30 REM DAS ERSTELLEN KANN ZUFAELLIG 40 REM ODER GEZIELT (DURCH EINGABE) 50 REM ERFOLGEN. 60 REM 70 REM SORTIERALGORITHMEN ERHALTEN DIE 80 REM ZEILENNUMMERN VON 10000 BIS 50000 90 REM SIE BENOETIGEN JEWEILS DIESEN 99 REM VORSPANN ZUR AUSFUEHRUNG. 100 REM HERSTELLUNG EINES ARRAYS: 110 REM ARRAYVARIABLE - A$ 120 REM SCHLEIFENVARIABLEN - X, Y, Z 130 REM HILFSVARIABLEN - B$, C$, D$ 140 REM DREIECKTAUSCH MIT - S$ 150 PRINT"[147]":CLR 160 PRINT"SOLL VON H[146]AND ODER Z[146]UFAELLIG ERSTELLT":PRINT 170 INPUT"WERDEN ";X$ 180 IFX$<>"H"ANDX$<>"Z"THEN150 190 IFX$="H"THENGOSUB220:GOSUB1000:GOTO210 200 GOSUB220:GOSUB2000 210 GOTO4000: REM WEITERMACHEN 220 REM ANZAHL DER ELEMENTE BESTIMMEN 230 PRINT:INPUT"ANZAHL DER ELEMENTE ";A 240 IF A>10000THENPRINT:PRINT"ZU VIELE ELEMENTE":GOTO230 250 IFA<10THENPRINT:PRINT"ZU WENIGE ELEMENTE":GOTO230 255 DIM A$(A) 260 INPUT"D[146]RUCKER ODER B[146]ILDSCHIRM ";Y$ 270 IFY$<>"D"ANDY$<>"B"THEN260 280 IFY$="D"THEND=4:GOTO300 290 D=3 300 RETURN 1000 REM EINGABE VON HAND 1010 PRINT"[147]" 1020 PRINT:PRINT"SIE MUESSEN JETZT"A" ELEMENTE EINGEBEN!":PRINT:PRINT 1030 PRINT"JEDES ELEMENT BESTEHT AUS 3 ZEICHEN.":PRINT:PRINT 1040 FORX=1TOA 1050 PRINTX". ";:INPUT"ELEMENT";A$(X) 1060 IFLEN(A$(X))<>3THEN1050 1070 NEXTX 1080 RETURN 2000 REM ZUFAELLIGE EINGABE 2010 PRINT"[147]" 2020 PRINT:PRINT"ES WERDEN JETZT"A" ELEMENTE ZUFAELLIG":PRINT:PRINT"AUSGEWAEHLT" 2030 PRINT:PRINT"JEDES ELEMENT BESTEHT AUS 3 ZEICHEN.":PRINT:PRINT 2040 FORX=1TOA 2050 A$(X)="" 2060 FORY=1TO3:A$(X)=A$(X)+CHR$(INT(RND(TI)*25)+65):NEXTY 2070 NEXTX 2080 RETURN 3000 REM ZWISCHENAUSGABE DER ELEMENTE 3010 FOR I=1TOA-9STEP10 3020 FOR J=ITOI+9:PRINT#1,A$(J)" ";:NEXTJ 3030 PRINT#1:NEXTI 3040 RETURN 4000 REM WEITERMACHEN 4005 OPEN1,D 4010 PRINT"[147]AUSGABE DES ERSTELLTEN FELDES" 4020 PRINT 4030 GOSUB3000 4040 REM SORTIERUNG STARTET 4050 REM 10000 REM SORTIEREN DURCH ZERLEGEN 10010 REM 10020 REM QUICKSORT 10030 REM 10040 REM LG = LINKE GRENZE 10050 REM RG = RECHTE GRENZE 10060 REM VG$ = VERGLEICHSELEMENT 10070 REM 10080 REM EINGANG DES HAUPTMODULS 10090 REM 10100 DIMLG(100),RG(100):Z=0:LG(1)=1:RG(1)=A 10110 GOSUB10200: REM QUICKSORT 10120 GOTO50000:REM ENDE 10200 REM EINGANG DER REKURSIVSCHLEIFE 10210 Z=Z+1:IFLG(Z)>=RG(Z)THEN10350 10220 X=LG(Z):Y=RG(Z) 10225 REM VERGLEICHSELEMENT HOLEN 10230 VG$=A$(INT((X+Y)/2)) 10240 IFX>YTHEN10320 10250 IFA$(X)VG$THENY=Y-1:GOTO10260 10270 IFX>YTHEN10320 10280 S$=A$(X):A$(X)=A$(Y):A$(Y)=S$ 10290 X=X+1:Y=Y-1 10300 GOTO10240 10310 REM 10320 GOSUB3000 10330 RG(Z+1)=Y:LG(Z+1)=LG(Z):GOSUB 10200 10340 LG(Z+1)=X:RG(Z+1)=RG(Z):GOSUB 10200 10350 Z=Z-1:RETURN 10360 REM 50000 REM ENDEBEHANDLUNG 50010 PRINT#1 50020 GOSUB 3000 50030 PRINT#1,A;" ELEMENTE" 50040 PRINT#1:PRINT#1:CLOSE1 50050 END