home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug005.ark / SORT.ASC < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.4 KB  |  76 lines

  1.  
  2. 10 CLEAR(500)
  3. 20 DIM N(150),C$(150)
  4. 30 PRINT:PRINT:PRINT:PRINT "TYPE C FOR CHARACTER STRING SORT,"
  5. 40 PRINT "TYPE N FOR NUMBER SORT.";
  6. 50 INPUT W$
  7. 60 N=0
  8. 70 PRINT:PRINT
  9. 80 IF W$="N" THEN 430
  10. 90 IF W$<> "C" THEN 140
  11. 100 GOSUB 710
  12. 110 INPUT S$
  13. 120 PRINT
  14. 130 N=N+1
  15. 140 INPUT C$(N)
  16. 150 IF C$(N)<>S$ THEN 130
  17. 160 N=N-1
  18. 170 PRINT
  19. 180 L=INT(N/2)+1
  20. 190 N1=N
  21. 200 IF L=1 THEN 240
  22. 210 L=L-1
  23. 220 A$=C$(L)
  24. 230 GOTO 280
  25. 240 A$=C$(N1)
  26. 250 C$(N1)=C$(1)
  27. 260 N1=N1-1
  28. 270 IF N1=1 THEN 390
  29. 280 J=L
  30. 290 I=J
  31. 300 J=2*J
  32. 310 IF J=N1 THEN 350
  33. 320 IF J>N1 THEN 380
  34. 330 IF C$(J)>=C$(J+1) THEN 350
  35. 340 J=J+1
  36. 350 IF A$>=C$(J) THEN 380
  37. 360 C$(I)=C$(J)
  38. 370 GOTO 290
  39. 380 C$(I)=A$:GOTO 200
  40. 390 C$(I)=A$
  41. 400 FOR I=1 TO N
  42. 410 PRINT C$(I):NEXT I
  43. 420 GOTO 30
  44. 430 GOSUB 710 
  45. 440 INPUT S:PRINT
  46. 450 N=N+1
  47. 460 INPUT N(N)
  48. 470 IF N(N)<>S THEN 450
  49. 480 N=N-1
  50. 490 PRINT
  51. 500 L=INT(N/2)+1
  52. 510 N1=N
  53. 520 IF L=1 THEN 550
  54. 530 L=L-1
  55. 540 A=N(L):GOTO 580
  56. 550 A=N(N1):N(N1)=N(1)
  57. 560 N1=N1-1
  58. 570 IF N1=1 THEN 680
  59. 580 J=L
  60. 590 I=J
  61. 600 J=2*J
  62. 610 IF J=N1 THEN 640
  63. 620 IF J>N1 THEN 670
  64. 630 IF N(J)<N(J+1) THEN J=J+1
  65. 640 IF A>N(J) THEN 670
  66. 650 N(I)=N(J)
  67. 660 GOTO 590
  68. 670 N(I)=A:GOTO 520
  69. 680 N(1)=A
  70. 690 FOR I=1 TO N:PRINT N(I):NEXT
  71. 700 GOTO 30
  72. 710 PRINT "PLEASE INDICATE A STOP CODE----SOMETHING NOT IN YOUR LIST"
  73. 720 PRINT "WHICH WILL ACT AS AN 'END OF LIST ' SIGNAL: ";
  74. 730 RETURN
  75. 740 END
  76.