Binary search: Difference between revisions

(Add task to ARM assembly Raspberry pi)
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
}
Anonymous user