competitive_programming_lib/Algorithms/binary_search.rs
1pub fn binary_search(arr: &[i32], target: i32) -> Option<usize> {
2 let mut low = 0;
3 let mut high = arr.len() as isize - 1;
4
5 while low <= high {
6 let mid = (low + high) / 2;
7 if arr[mid as usize] == target {
8 return Some(mid as usize);
9 } else if arr[mid as usize] < target {
10 low = mid + 1;
11 } else {
12 high = mid - 1;
13 }
14 }
15 None
16}