input: Write a python function to perform a binary search on a sorted array.
  assert binary_search([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5) == 4
  assert binary_search([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], 70) == 6
  assert binary_search([5, 10, 15, 20, 25, 30, 35, 40, 45, 50], 25) == 4
  assert binary_search([2, 4, 6, 8, 10, 12, 14, 16, 18, 20], 11) == -1
output: def binary_search(arr, target):
      left, right = 0, len(arr) - 1
      
      while left <= right:
          mid = left + (right - left) // 2
          
          if arr[mid] == target:
              return mid
          elif arr[mid] < target:
              left = mid + 1
          else:
              right = mid - 1
              
      return -1