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}}==