home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 13
/
CD_ASCQ_13_0494.iso
/
maj
/
419
/
binseekd.bas
< prev
next >
Wrap
BASIC Source File
|
1994-03-13
|
1KB
|
39 lines
' +----------------------------------------------------------------------+
' | |
' | PBClone Copyright (c) 1990-1994 Thomas G. Hanlin III |
' | |
' +----------------------------------------------------------------------+
SUB BinSeekD (Array#(), Elements%, Target#, Posn%)
IF Elements% = 0 THEN
Posn% = -1
ELSE
Top% = 1
Bottom% = Elements% + 1
OldPlace% = Bottom%
DO
Place% = (Top% + Bottom%) \ 2
IF Place% = OldPlace% THEN
NotThere% = -1
ELSEIF Array#(Place%) = Target# THEN
Found% = -1
ELSEIF Array#(Place%) > Target# THEN
Bottom% = Place%
ELSE
Top% = Place%
END IF
OldPlace% = Place%
LOOP UNTIL Found% OR NotThere%
IF NotThere% THEN
IF Elements% = UBOUND(Array#) THEN
Posn% = 0
ELSE
IF Target# > Array#(Place%) THEN Place% = Place% + 1
Posn% = -Place%
END IF
ELSE
Posn% = Place%
END IF
END IF
END SUB