通过C语言实现二分查找法

博主jack分享了如何使用C语言实现二分查找法,介绍了二分查找的基本思想和时间复杂度,并提供了功能函数的代码实现,鼓励读者动手实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hellow,我是jack,今天给大家分享的是C语言实现二分查找。话不多说,让我们直接进入正题。

首先让我们了解下什么是二分查找法

基本思想是将n个元素分成大致相等的两部分,取a [n/2]与x做比较,如果x=a [n/2],则找到x,算法中止;如果x<a [n/2],则只要在数组a的左半部分继续搜索x,如果x>a [n/2],则只要在数组a的右半部搜索x. 时间复杂度即是while循环的次数。 折半查找法 也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O (log n)完成搜索任务。

 知道了这些,就然我们试着用代码来实现一下吧。

void is_found(int a[], int k, int sz)
{//二分查找实现方法函数
	int left =0;//定义一个变量指向数组的第一个值
	int right = sz - 1;//定义一个变量指向数组的最后一个值
	while (left<right) 
	{  //左边的数大于右边的数循环终止
		
		int mid = (left + right) / 2;//设置一个变量并传入中间值

		if (a[mid] > k) {//进行对中间值的判断,如果大于寻找值,则将right指向mid-1
			right = mid-1;
		}
		else if (a[mid] < k) {//进行对中间值的判断,如果小于寻找值,则将lift指向mid+1
			left = mid + 1;
		}
		else {
			printf("找到了是: %d\n", mid);
			break;
		}
	}
		if (left > right)
	{
		p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值