#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 ", BSearchRec(va, 1000000 * PI, LBOUND(va), UBOUND(va)), _ " in ", GetTickCount() - gtc, " milliseconds" PAUSE FUNCTION BSearchRec(BYVAL array, BYVAL num, BYVAL low, BYVAL high) IF high < low THEN RETURN -1 DIM midp = (high + low) \ 2 IF array[midp] > num THEN RETURN BSearchRec(array, num, low, midp - 1) ELSEIF array[midp] < num THEN RETURN BSearchRec(array, num, midp + 1, high) END IF RETURN midp END FUNCTION