#include<stdio.h>
int main()
{
int n=1, num, n1, i;
int mid;//定义中间的数的坐标
int left, right;//定义下标
scanf("%d", &n);
n1 = n;
int arr[100];
for (i = 0; i < n; i++)//数组中插入元素
{
scanf("%d", &arr[i]);
}
scanf("%d", &num);//确定要找的数
left = 0;
right = n1 - 1;
//二分查找开始
while (left <= right)
{
mid = (left + right) / 2;//确保每次查找完后都进行一次范围缩减
if (arr[mid] < num)
{
left = mid + 1;
}
else if (arr[mid] > num)
{
right = mid - 1;
}
else//如果找到该数,此时左右下标一定相等
{
printf("%d", mid+1);
break;
}
}
if (left > right)//如果找的数不在数组内,会出现下标交叉,即左下标大于右下标
{
printf("None");
}
return 0;
}
第四关 二分查找
最新推荐文章于 2024-03-02 15:50:27 发布