二分查找法的原理和条件
条件
- 被查找的集合必须是有序的集合
原理
代码实现
#include <stdio.h>
int binarySearch(int *arr,int target,int length);
int main(int agrc,char *argv[])
{
int i,arr[2000]={0};
for(i=0;i<100;i++)
{
arr[i]=i+1;
}
int t=binarySearch(arr,99,100);
printf("%d\n",t);
return 0;
}
int binarySearch(int arr[],int target,int length)
{
int front,rear,index;
front=0;
rear=length-1;
while(front<=rear)
{
index=(rear+front)/2;
if(target<arr[index])
{
rear=index-1;
}
else if(target>arr[index])
{
front=index+1;
}
else
{
return index;
}
}
return -1;
}