#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