2026-02-01 16:33:20 -08:00
|
|
|
fn binary_search<T:PartialOrd>(searchvalue: T, v: &[T] ) -> Option<usize> {
|
2023-07-01 11:58:00 -04:00
|
|
|
let mut lower = 0 as usize;
|
2026-02-01 16:33:20 -08:00
|
|
|
let mut upper = v.len();
|
|
|
|
|
while upper > lower {
|
|
|
|
|
let mid = lower + (upper - lower) / 2;
|
2023-07-01 11:58:00 -04:00
|
|
|
if v[mid] == searchvalue {
|
2026-02-01 16:33:20 -08:00
|
|
|
return Some(mid);
|
2023-07-01 11:58:00 -04:00
|
|
|
} else if searchvalue < v[mid] {
|
2026-02-01 16:33:20 -08:00
|
|
|
upper = mid;
|
2023-07-01 11:58:00 -04:00
|
|
|
} else {
|
|
|
|
|
lower = mid + 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
None
|
|
|
|
|
}
|