# C/C++로 배우는 자료구조론 연습문제 4.18

def binary_search(array, left, right, find_num)
  return -1 if left > right
  
  mid = (left + right) / 2

  if find_num == array[mid]
     return mid
  elsif find_num < array[mid]
     return binary_search(array, left, mid - 1, find_num)
  else
     return binary_search(array, mid + 1, right, find_num)
  end
end

puts binary_search([1,2,3,4,5], 0, 4, 2)
puts binary_search([1,2,3,4,5], 0, 4, 4)
puts binary_search([1,2,3,4,5], 0, 4, 7)
puts binary_search([1,2,3,4,5], 0, 4, 0)

