|
fn bin_search<T : PartialOrd>(sar : &[T], v : &T) -> Option<usize> {
|
|
let mut lowi=0;
|
|
let mut highi=sar.len();
|
|
loop {
|
|
if lowi>=highi {
|
|
return None;
|
|
}
|
|
let mi=lowi+(highi-lowi)/2;
|
|
if sar[mi].lt(v) {
|
|
lowi=mi+1;
|
|
} else if sar[mi].gt(v) {
|
|
highi=mi;
|
|
} else {
|
|
return Some(mi);
|
|
}
|
|
}
|
|
}
|