原理
使用前提:数组按升序排列 查找元素key
- 如果key小于中间元素,只需要在数组前半区查找
- 2.如果key等于mid查找成功
- key大于mid,只需要在后半区查找
对一个有序的数组进行关键字查找操作,当数组中含有改关键字,return True,否则return False
#include<stdio.h>
int search(int arr[],int key, int left, int right)
{
while (left <= right)
{
int mid = (right + left) / 2;
if (arr[mid]<key)
{
left = mid + 1; //若中间元素小于查找元素,下面查找后半区
}
else if (arr[mid]>key)
{
right = mid - 1;
}
else //一直查到中间元素等于查找元素
{
return mid; //返回查找到的元素
}
}
return false;
}
int main()
{
int arr[