BCX Console Demonstration Program s111.bas |
MACRO Maxx = 1000001 GLOBAL A[Maxx] AS INTEGER GLOBAL B AS INTEGER GLOBAL I AS INTEGER GLOBAL J AS INTEGER GLOBAL L AS INTEGER GLOBAL M AS INTEGER GLOBAL N AS INTEGER CLS COLOR 2,0 PRINT "***********************************************************************" PRINT " A Shell-Metzner Integer Sort Example For BCX" PRINT " Derived from a program by Judson McClendon" PRINT " based on original work by Donald Knuth" PRINT "***********************************************************************" PRINT "Sorting 1 million Integers takes about 15 seconds on my 300 mhz Pentium" PRINT "***********************************************************************" PRINT N = 1000000 PRINT TIME$, ": Storing 1 million random integers" FOR I = 1 TO N A[I] = RND * Maxx ' Store random integers NEXT COLOR 4,0 PRINT TIME$, ": Starting The Sort" CALL Sort PRINT TIME$, ": Sorting Complete!" SUB Sort M = 3280 WHILE M FOR J = 1 TO N - M L = J + M B = A[L] FOR I = J TO 1 STEP -M IF A[I] > B THEN A[I + M] = A[I] L = I ELSE I = 1 END IF NEXT A[L] = B NEXT M = (M - 1) / 3 WEND END SUB
Result:
Result not displayed for this example.