RosettaCodeData/Task/Sort-an-integer-array/GW-BASIC/sort-an-integer-array.basic
2026-04-30 12:34:36 -04:00

31 lines
652 B
Text

20 DEFINT A-Z
30 ARRAYSIZE = 10
40 DIM NUMBERS(ARRAYSIZE)
50 PRINT "Unsorted:";
60 FOR I = 1 TO ARRAYSIZE
70 NUMBERS(I) = INT(RND * 100) + 1
80 PRINT NUMBERS(I);
90 NEXT I
100 PRINT
110 REM ascending sort using Shell sort
120 GAP = INT(ARRAYSIZE / 2)
130 IF GAP = 0 THEN 270
140 FOR I = GAP + 1 TO ARRAYSIZE
150 J = I - GAP
160 WHILE J > 0
170 K = J + GAP
180 IF NUMBERS(J) <= NUMBERS(K) THEN J = 0: GOTO 220
190 TEMP = NUMBERS(J)
200 NUMBERS(J) = NUMBERS(K)
210 NUMBERS(K) = TEMP
220 J = J - GAP
230 WEND
240 NEXT I
250 GAP = INT(GAP / 2)
260 GOTO 130
270 PRINT "Sorted :";
280 FOR I = 1 TO ARRAYSIZE
290 PRINT NUMBERS(I);
300 NEXT
310 PRINT
320 END