首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >二分查找 递归

二分查找 递归

作者头像
叶茂林
发布于 2023-07-28 21:22:00
发布于 2023-07-28 21:22:00
4430
举报

碎碎念念

假设我们要在一个升序排序的整型数组中查找某个特定的整数,如果找到了,返回该整数在数组中的索引号,如果没有找到,则返回-1。

我们首先看要找的数和数组中间的数的大小关系,如果相等,那么说明找到了,如果要找的数小于数组中间的数,那么我们再在数组的前半部分继续查找,如果大于,那么我们再在数组的后半部分继续查找,每次查找都将范围缩小一半,称为二分查找。

代码

代码语言:javascript
复制
#include<stdio.h>
int binary_search(int line[],int target,int begin,int end)
{
	int middle=(begin+end)/2;
	if(begin>end)
	return -1;
	if(target==line[middle])
	return middle;
	else if(target<line[middle])
	return binary_search(line,target,begin,middle-1);
	return binary_search(line,target,middle+1,end);
}
int main()
{
	int line[10]={1,2,3,4,5,6,7,8,9,10};
	if(binary_search(line,5,0,9)!=-1)
	printf("YES %d",binary_search(line,5,0,9)+1);
	else
	printf("NO");
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 碎碎念念
  • 代码
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档