//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、概念
1.使用二分法好处: 可以加快寻找的效率。
2.使用二分法特点: 二分法查找有序数组元素。
3.使用二分法思路:它是通过与数组的中间值进行比较的。
/**
1.我们要查找的值为X
2.数组是从小到大排序的
**
1.先取出数组中间的元素
2.把中间元素和X进行比较,如果中间元素大于X,那么X就位于第一个元素,和中间元素之间。反之,如果中间元素小于X,那么X就位于中间元素和最大值之间。
3.这样进行比较之后,我们的查找范围就小了一半。
*/
三、实现代码:
#pragma mark - 实现代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *arr = @[@1,@20,@30,@45,@50,@55,@60,@66,@70];
NSInteger x = 70,min,max,mid;
min = 0;
max = arr.count - 1;
mid = (min + max) / 2;
for (int i = 0; i < arr.count; i++)
{
if ([arr[mid] integerValue] == x)
{
NSLog(@"查找次数为--->%d次",i);
NSLog(@"寻找值位置为--->%ld",mid);
return;
}else if ([arr[mid] integerValue] > x)
{
max = mid - 1;
mid = (min + max) / 2;
}else if ([arr[mid] integerValue] < x)
{
min = mid + 1;
mid = (min + max) / 2;
}
}
}