#include <stdio.h>
int main(void)
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 8; //查找的数为8
int r_b = 0; //右下标
int l_b = 0; //左下标
int sz = 0;
while (l_b <= r_b)
{
sz = sizeof(arr) / sizeof(arr[0]); //计算数组个数
r_b = sz - 1;
int mid = (r_b + l_b) / 2; //计算数组中间数
if (arr[mid] > k) //中间数大于k,说明要找的数在左半边
{
r_b = mid - 1; //将右下标更新为中间数减1
}
else if (arr[mid] < k) //中间数小于k,说明要找的数在右半边
{
l_b = mid + 1; //将左下标更新为中间数加1
}
else
{
printf("数的下标为:%d\n", mid);
break; //找到数了,用break结束循环
}
}
if (l_b > r_b) //右下标大于左下标,说明未找到该数字
{
printf("未找到该数\n");
}
return 0;
}
C语言#用二分查找法找有序数组中的数
最新推荐文章于 2022-08-03 23:32:05 发布