fn binary_search(array: &[i32], element: i32, low: usize, high: usize) -> isize {
let mut low = low;
let mut high = high;
while low <= high {
let mid = low + (high - low) / 2;
if array[mid] == element {
return mid as isize;
}
if array[mid] < element {
low = mid + 1;
} else {
high = mid - 1;
}
}
-1
}
fn main() {
let array = [3, 4, 8, 9, 10, 17, 21, 28, 33, 36, 42];
let number_to_find = 21;
let index = binary_search(&array, number_to_find, 0, array.len() - 1);
if index == -1 {
println!("Not found");
} else {
println!("Found at index: {}", index);
}
}
/*
run:
Found at index: 6
*/