Order by pair comparisons: Difference between revisions
Content added Content deleted
(→{{header|Commodore BASIC}}: Add implementation.) |
|||
Line 101: | Line 101: | ||
{ red orange yellow green blue indigo violet } |
{ red orange yellow green blue indigo violet } |
||
</pre> |
</pre> |
||
=={{header|Commodore BASIC}}== |
|||
<lang basic>100 REM SORT BY COMPARISON |
|||
110 DIM IN$(6), OU$(6) |
|||
120 FOR I=0 TO 6:READ IN$(I): NEXT I |
|||
130 DATA VIOLET,RED,GREEN,INDIGO,BLUE,YELLOW,ORANGE |
|||
140 OU$(0)=IN$(0):N=1 |
|||
150 FOR I=1 TO 6 |
|||
160 : IN$=IN$(I) |
|||
180 : GOSUB 390 |
|||
190 : FOR J=0 TO N-1 |
|||
200 : OU$ = OU$(J) |
|||
210 : GOSUB 340 |
|||
220 : IF R>=0 THEN 280 |
|||
230 : FOR K=N TO J+1 STEP -1 |
|||
240 : OU$(K) = OU$(K-1) |
|||
250 : NEXT K |
|||
260 : OU$(J) = IN$ |
|||
270 : GOTO 300 |
|||
280 : NEXT J |
|||
290 : OU$(N) = IN$ |
|||
300 : N=N+1 |
|||
310 NEXT I |
|||
320 GOSUB 390 |
|||
330 END |
|||
340 PRINT "IS "IN$" < "OU$"? (Y/N)"; |
|||
350 GET K$: IF K$<>"Y" AND K$<>"N" THEN 350 |
|||
360 PRINT K$ |
|||
370 R = K$="Y" |
|||
380 RETURN |
|||
390 PRINT "("; |
|||
400 IF N=1 THEN 420 |
|||
410 FOR Q=0 TO N-2:PRINT OU$(Q)",";:NEXT Q |
|||
420 PRINT OU$(N-1)")" |
|||
430 RETURN</lang> |
|||
{{Out}} |
|||
<pre>RUN |
|||
IS RED < VIOLET? (Y/N)Y |
|||
IS GREEN < RED? (Y/N)N |
|||
IS GREEN < VIOLET? (Y/N)Y |
|||
IS INDIGO < RED? (Y/N)N |
|||
IS INDIGO < GREEN? (Y/N)N |
|||
IS INDIGO < VIOLET? (Y/N)Y |
|||
IS BLUE < RED? (Y/N)N |
|||
IS BLUE < GREEN? (Y/N)N |
|||
IS BLUE < INDIGO? (Y/N)Y |
|||
IS YELLOW < RED? (Y/N)N |
|||
IS YELLOW < GREEN? (Y/N)Y |
|||
IS ORANGE < RED? (Y/N)N |
|||
IS ORANGE < YELLOW? (Y/N)Y |
|||
(RED,ORANGE,YELLOW,GREEN,BLUE,INDIGO,VIOLET)</pre> |
|||