重复以上过程,直到找到满足条件的记录,使查找成功。...或直到子表不存在为止,此时查找不成功
图解
算法效率
时间复杂度为 O(log2n) 也就是说查找的最大次数为log2n
优点:查找效率高
缺点:必须采用顺序存储结构,,必须按关键字大小有序排列。...使用C语言代码实现
//二分查找
//给定一个有序数组,任意给定一个值,查找该值在数组的位置
int main()
{
int arr[] = { 5,9,12,15,20,32,36,42,56,78,89.../ sizeof(arr[0]);
int left = 0;
int right = sz - 1;
int flag = 0;//标志位
while (left 数组未查找完成时...left = mid + 1;
}
else
{
printf("arr[%d]=%d\n", mid, key);
flag = 1;
break;//如果没有break,代码会陷入死循环