home *** CD-ROM | disk | FTP | other *** search
-
- 10 CLEAR(500)
- 20 DIM N(150),C$(150)
- 30 PRINT:PRINT:PRINT:PRINT "TYPE C FOR CHARACTER STRING SORT,"
- 40 PRINT "TYPE N FOR NUMBER SORT.";
- 50 INPUT W$
- 60 N=0
- 70 PRINT:PRINT
- 80 IF W$="N" THEN 430
- 90 IF W$<> "C" THEN 140
- 100 GOSUB 710
- 110 INPUT S$
- 120 PRINT
- 130 N=N+1
- 140 INPUT C$(N)
- 150 IF C$(N)<>S$ THEN 130
- 160 N=N-1
- 170 PRINT
- 180 L=INT(N/2)+1
- 190 N1=N
- 200 IF L=1 THEN 240
- 210 L=L-1
- 220 A$=C$(L)
- 230 GOTO 280
- 240 A$=C$(N1)
- 250 C$(N1)=C$(1)
- 260 N1=N1-1
- 270 IF N1=1 THEN 390
- 280 J=L
- 290 I=J
- 300 J=2*J
- 310 IF J=N1 THEN 350
- 320 IF J>N1 THEN 380
- 330 IF C$(J)>=C$(J+1) THEN 350
- 340 J=J+1
- 350 IF A$>=C$(J) THEN 380
- 360 C$(I)=C$(J)
- 370 GOTO 290
- 380 C$(I)=A$:GOTO 200
- 390 C$(I)=A$
- 400 FOR I=1 TO N
- 410 PRINT C$(I):NEXT I
- 420 GOTO 30
- 430 GOSUB 710
- 440 INPUT S:PRINT
- 450 N=N+1
- 460 INPUT N(N)
- 470 IF N(N)<>S THEN 450
- 480 N=N-1
- 490 PRINT
- 500 L=INT(N/2)+1
- 510 N1=N
- 520 IF L=1 THEN 550
- 530 L=L-1
- 540 A=N(L):GOTO 580
- 550 A=N(N1):N(N1)=N(1)
- 560 N1=N1-1
- 570 IF N1=1 THEN 680
- 580 J=L
- 590 I=J
- 600 J=2*J
- 610 IF J=N1 THEN 640
- 620 IF J>N1 THEN 670
- 630 IF N(J)<N(J+1) THEN J=J+1
- 640 IF A>N(J) THEN 670
- 650 N(I)=N(J)
- 660 GOTO 590
- 670 N(I)=A:GOTO 520
- 680 N(1)=A
- 690 FOR I=1 TO N:PRINT N(I):NEXT
- 700 GOTO 30
- 710 PRINT "PLEASE INDICATE A STOP CODE----SOMETHING NOT IN YOUR LIST"
- 720 PRINT "WHICH WILL ACT AS AN 'END OF LIST ' SIGNAL: ";
- 730 RETURN
- 740 END
- TE A