二分查找注意事项

目录

1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细节处理上有所不同                                        

 2左闭右闭情况

 3左闭右开

 4总结:


 

1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细节处理上有所不同                                        

 2左闭右闭情况

注意while条件为left<=right,别忘记等号,因为目标值可能会出现在right==left的位置。

int search(int nums[], int size, int target)
{
	int left = 0;
	int right = size; 
	while (left <= right) {	//条件left < right 修改为 left <= right
		int middle = left + ((right - left) / 2);
		if (nums[middle] > target) {
			right = middle; 
		} else if (nums[middle] < target) {
			left = middle + 1;
		} else {
			return middle;
		}
	} 
    // 没找到就返回-1
	return -1;
}

 3左闭右开

这种情况下的循环条件为left<right,不能加=,

代码:

int search(int nums[], int size, int target)
{
	int left = 0;
	int right = size; //定义target在左闭右开的区间里,即[left, right)
	while (left < right) {	//因为left = right的时候,在[left, right)区间上无意义
		int middle = left + ((right - left) / 2);
		if (nums[middle] > target) {
			right = middle; //target 在左区间,在[left, middle)中 
		} else if (nums[middle] < target) {
			left = middle + 1;
		} else {
			return middle;
		}
	} 
    // 没找到就返回-1
	return -1;
}
 4总结:

二分法最重要的两个点,就是循环条件和后续的区间赋值问题;

因为两者是相互联系,相互影响的,所以就需要两者统一,如果两者不统一,就会出现问题

所以循环条件和赋值问题必须统一,也就是循环不变量。

相关推荐

  1. 二分查找.

    2024-03-16 14:32:01       4 阅读
  2. 计算机二级考试注意事项(Python程序设计篇)

    2024-03-16 14:32:01       18 阅读
  3. MySQL UPDATE查询的用法和注意事项

    2024-03-16 14:32:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 14:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 14:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 14:32:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 14:32:01       20 阅读

热门阅读

  1. tmux终端复用器

    2024-03-16 14:32:01       22 阅读
  2. 前端图片预加载和懒加载

    2024-03-16 14:32:01       18 阅读
  3. 手写vue将虚拟 Dom 转化为真实 Dom

    2024-03-16 14:32:01       23 阅读
  4. 学习总结2

    2024-03-16 14:32:01       19 阅读
  5. 解决C#连接MySQL数据库报错: SslMode=None;

    2024-03-16 14:32:01       20 阅读
  6. 工大智信智能听诊器:科技创新,赋能医疗

    2024-03-16 14:32:01       20 阅读
  7. 【DP+贪心】跳跃游戏

    2024-03-16 14:32:01       21 阅读