1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def binary_search(nums, left, right, target) while left <= right mid = (left + right) / 2
return mid if nums[mid] == target
if target < nums[mid] right = mid - 1 return binary_search(nums, left, right, target) else left = mid + 1 return binary_search(nums, left, right, target) end end
return -1 end
binary_search(a, 0, 8, 5)
|