Binary search: Difference between revisions
Content added Content deleted
(Add task to ARM assembly Raspberry pi) |
|||
Line 4,851: | Line 4,851: | ||
} |
} |
||
None |
|||
} |
|||
</lang> |
|||
'''Iterative''' |
|||
<lang rust> |
|||
use std::cmp::Ordering::*; |
|||
pub fn binary_search<T: Ord>(data: &[T], target: &T) -> Option<usize> { |
|||
let mut high = data.len(); |
|||
let mut low = 0; |
|||
let mut mid = high / 2; |
|||
while low < high { |
|||
let _result = match target.cmp(&data[mid]) { |
|||
Less => { |
|||
high = mid; |
|||
}, |
|||
Greater => { |
|||
low = mid; |
|||
} |
|||
Equal => return Some(mid) |
|||
}; |
|||
mid = (high + low) / 2; |
|||
} |
|||
None |
None |
||
} |
} |