第四关 二分查找

第四关 二分查找,第1张

第四关 二分查找
#include
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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5634593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存