Advertisement
Guest User

binar

a guest
Apr 5th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.43 KB | None | 0 0
  1. let find (arr: 'a array) (element: 'a) : int =
  2.   let l = 0 in
  3.   let r = Array.length(arr) - 1 in
  4.   let rec bin (left: int) (right: int) : int =
  5.     if left > right then -1
  6.     else
  7.       let middle = (left + right) / 2 in
  8.       let mid_val = arr.(middle) in
  9.       if mid_val = element then middle
  10.       else if element > mid_val
  11.       then
  12.         bin (middle + 1) right
  13.       else
  14.         bin left (middle - 1)
  15.   in bin l r
  16. ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement