Sorting algorithms/Selection sort: Difference between revisions
Content added Content deleted
(Added Quackery.) |
|||
Line 690: | Line 690: | ||
NEXT I% |
NEXT I% |
||
ENDPROC</lang> |
ENDPROC</lang> |
||
=={{header|BASIC}}== |
|||
==={{header|GWBASIC}}=== |
|||
Works with: QBASIC, QuickBASIC, VB-DOS |
|||
<lang GWBASIC> |
|||
10 'SAVE"SELSORT",A |
|||
20 ' Selection Sort Algorithm |
|||
30 ' |
|||
40 ' VAR |
|||
50 OPTION BASE 1 |
|||
60 I=0: J=0: IMAX = 0: ITP = 0 |
|||
70 ' |
|||
80 ' CONST |
|||
90 FALSE=0: TRUE=NOT FALSE |
|||
100 ' |
|||
110 CLS |
|||
120 PRINT "This program does the Selection Sort Algorithm" |
|||
130 INPUT "Number of elements to sort (Max=500, Enter=10)";IMAX |
|||
140 IF IMAX = 0 THEN IMAX = 10 |
|||
150 IF IMAX > 500 THEN IMAX = 500 |
|||
160 DIM N(IMAX) |
|||
170 ' Creates and shows the unsorted list |
|||
180 RANDOMIZE TIMER |
|||
190 FOR I=1 TO IMAX |
|||
200 N(I) = I |
|||
210 NEXT I |
|||
220 FOR I=1 TO IMAX |
|||
230 J = INT(RND*IMAX)+1 |
|||
240 SWAP N(I), N(J) |
|||
250 NEXT I |
|||
260 PRINT: PRINT "Unsorted list:"; |
|||
270 FOR I=1 TO IMAX: PRINT N(I);: NEXT I |
|||
280 PRINT: PRINT |
|||
290 ' Sorts the list through the Selection Sort Algorithm and shows the results |
|||
300 PRINT "Sorting"; IMAX; "numbers"; |
|||
310 COLOR 7+16: X = POS(0): PRINT"...";: COLOR 7 |
|||
320 ITP = 0 |
|||
330 FOR I=1 TO IMAX-1 |
|||
340 FOR J=I+1 TO IMAX |
|||
350 IF N(I)>N(J) THEN SWAP N(I), N(J): ITP = ITP+1 |
|||
360 NEXT J, I |
|||
370 LOCATE ,X: PRINT ". Done!" |
|||
380 PRINT: PRINT "Sorted list:"; |
|||
390 FOR I=1 TO IMAX: PRINT N(I);: NEXT I |
|||
400 ' Final results |
|||
410 PRINT: PRINT: PRINT "Numbers sorted:"; IMAX |
|||
420 PRINT "Total permutations done:";ITP |
|||
430 PRINT |
|||
440 PRINT "End of program" |
|||
450 END |
|||
</lang> |
|||
=={{header|C}}== |
=={{header|C}}== |