 |
BCX Console Demonstration Program S111.bas
|
CONST
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