June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
18
Task/Binary-search/Rust/binary-search-2.rust
Normal file
18
Task/Binary-search/Rust/binary-search-2.rust
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
use std::cmp::Ordering::*;
|
||||
fn binary_search<T: Ord>(arr: &[T], elem: &T) -> Option<usize>
|
||||
{
|
||||
let mut size = arr.len();
|
||||
let mut base = 0;
|
||||
|
||||
while size > 0 {
|
||||
size /= 2;
|
||||
let mid = base + size;
|
||||
base = match arr[mid].cmp(elem) {
|
||||
Less => mid,
|
||||
Greater => base,
|
||||
Equal => return Some(mid)
|
||||
};
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue