31 lines
593 B
Plaintext
31 lines
593 B
Plaintext
fn binarySearchRecursive arr value lower upper =
|
|
(
|
|
if lower == upper then
|
|
(
|
|
if arr[lower] == value then
|
|
(
|
|
return lower
|
|
)
|
|
else
|
|
(
|
|
return -1
|
|
)
|
|
)
|
|
mid = (lower + upper) / 2
|
|
if arr[mid] > value then
|
|
(
|
|
return binarySearchRecursive arr value lower (mid-1)
|
|
)
|
|
else if arr[mid] < value then
|
|
(
|
|
return binarySearchRecursive arr value (mid+1) upper
|
|
)
|
|
else
|
|
(
|
|
return mid
|
|
)
|
|
)
|
|
|
|
arr = #(1, 3, 4, 5, 6, 7, 8, 9, 10)
|
|
result = binarySearchRecursive arr 6 1 arr.count
|