DECLARE SUB SHELLSORT (X%(), N%) DEFINT A-Z CLS DIM A(20) FOR J = 0 TO 19 A(J) = INT(20 * RND): PRINT USING "####"; A(J); NEXT J PRINT SHELLSORT A(), 20 FOR J = 0 TO 19: PRINT USING "####"; A(J); : NEXT J END SUB SHELLSORT (X%(), N%) DIM I, J, GAP, K, XX, A(5) A(0) = 9: A(1) = 5: A(2) = 3: A(3) = 2: A(4) = 1 FOR K = 0 TO 4 GAP = A(K) FOR I = GAP TO N - 1 XX = X(I) FOR J = I - GAP TO 0 STEP -GAP IF XX >= X(J) THEN EXIT FOR X(J + GAP) = X(J) NEXT J X(J + GAP) = XX NEXT I NEXT K END SUB