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
}
}