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}