Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Recursion challenge
#21
Well, attending to Moneo, here's my entri Smile

Code:
FUNCTION binarySearch% (Array%(), n%)
   binarySearch% = binarySearchRec%(Array%(), LBOUND(Array%), UBOUND(Array%), n%)
END FUNCTION

'
' binarySearchRec% is called by binarySearch% takes four parameters:
'
' Array%() -> The array to look inside of.
' i1% -> lower limit.
' i2% -> upper limit.
' n% -> Number that is searched.
'
' We basicly take the array, and look the element in the mid place.
' if it equals n%, we have found it!
'
' If the element in the array is SMALLER than n%, we should look in
' the right half of the array, so we call ourselves recursively with
' new i1%, i2% values.
'
' If the element in the array is BIGGER than n%, we should look in the
' left half of the array.
'
' This (of course) only works if the array is sorted.
'
FUNCTION binarySearchRec% (Array%(), i1%, i2%, n%)
   Res% = -1
   IF i1% > i2% THEN binarySearchRec% = Res%: EXIT FUNCTION
   midPoint% = i1% + (i2% - i1%) \ 2
   IF Array%(midPoint%) = n% THEN
      Res% = midPoint%
   ELSEIF Array%(midPoint%) < n% THEN
      Res% = binarySearchRec%(Array%(), midPoint% + 1, i2%, n%)
   ELSE
      Res% = binarySearchRec%(Array%(), i1%, midPoint% - 1, n%)
   END IF
   binarySearchRec% = Res%
END FUNCTION
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)