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