RosettaCodeData/Task/Binary-search/Rust/binary-search.rs
2026-02-01 16:33:20 -08:00

15 lines
414 B
Rust

fn binary_search<T:PartialOrd>(searchvalue: T, v: &[T] ) -> Option<usize> {
let mut lower = 0 as usize;
let mut upper = v.len();
while upper > lower {
let mid = lower + (upper - lower) / 2;
if v[mid] == searchvalue {
return Some(mid);
} else if searchvalue < v[mid] {
upper = mid;
} else {
lower = mid + 1;
}
}
None
}