31 lines
652 B
Text
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
|