29 lines
623 B
Text
29 lines
623 B
Text
#APPTYPE CONSOLE
|
|
|
|
DIM va[]
|
|
|
|
PRINT "Loading ... ";
|
|
DIM gtc = GetTickCount()
|
|
FOR DIM i = 0 TO 1000000: va[] = i * PI: NEXT
|
|
PRINT "done in ", GetTickCount() - gtc, " milliseconds"
|
|
|
|
gtc = GetTickCount()
|
|
PRINT 1000000 * PI, " found at index ", BSearchIter(va, 1000000 * PI), _
|
|
" in ", GetTickCount() - gtc, " milliseconds"
|
|
|
|
PAUSE
|
|
|
|
FUNCTION BSearchIter(BYVAL array, BYVAL num)
|
|
STATIC low = LBOUND(va), high = UBOUND(va)
|
|
WHILE low <= high
|
|
DIM midp = (high + low) \ 2
|
|
IF array[midp] > num THEN
|
|
high = midp - 1
|
|
ELSEIF array[midp] < num THEN
|
|
low = midp + 1
|
|
ELSE
|
|
RETURN midp
|
|
END IF
|
|
WEND
|
|
RETURN -1
|
|
END FUNCTION
|