AitSar/search/
exponential.rs

1fn exponential_search(arr: &[i32], target: i32) -> Option<usize> {
2    let mut bound = 1;
3    while bound < arr.len() && arr[bound] < target {
4        bound *= 2;
5    }
6    let left = bound / 2;
7    let right = std::cmp::min(bound, arr.len() - 1);
8
9    arr[left..=right].binary_search(&target).ok().map(|i| left + i)
10}