#pragma mark - 二分查找法/**
* 当数据量很大适宜采用该方法。
采用二分法查找时,数据需是排好序的。
基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段 中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
*/
- (NSInteger)BinarySearch:(NSArray*)array target:(id)key{
NSInteger left =0;
NSInteger right = [array count] -1;
NSInteger middle = [array count] /2;
while(right >= left) {
middle = (right + left) /2;
if(array[middle] == key) {
return middle;
}
if(array[middle] > key) {
right = middle -1;
}elseif(array[middle] < key) {
left = middle +1;
}
}
return-1;
}
作者:才华惊动警方
链接:https://www.jianshu.com/p/28928b74fe48
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。