二分法精讲剖析及个人理解(通俗,适合新手)-《算法笔记》同步笔记总结与补充

二分法这一章,做题时的难度明显感觉要高于前几章专题要点:对二分思想的掌握与运用是这一专题的要点,个人认为,理解二分思想中的二分取值(即left,right,mid),二分判断条件(mid > key, mid < key, mid == key),二分的循环条件(left < right, left <= right),二分的返回值(return left/right,...
摘要由CSDN通过智能技术生成

二分法这一章,做题时的难度明显感觉要高于前几章

专题要点:

对二分思想的掌握与运用是这一专题的要点,个人认为,理解二分思想中的二分取值(即left,right,mid),二分判断条件(mid > key, mid < key, mid == key),二分的循环条件(left < right, left <= right),二分的返回值(return left/right, return mid)尤为重要!!!可以自己先问一下自己,这几点是否完全明白,而非模棱两可。

二分思想:

1、二分前提:二分法运用的前提条件即为有序性,因此在做题时,如果有明显的有序性,可以考虑二分法,若无明显的有序性,考虑能否将数据转化为有序的(排序或进行一些运算,比如计算自序和的运算)
2、二分取值:left,right作为区间的两个端点,根据二分判断条件进行左右移动;mid作为中点主要是用来标出要查找数据的位置,并进行二分判断的
3、二分判断条件,二分循环条件与二分返回值可以根据查找目的不同,分为两种查找方式:
①查找满足相等关系的元素是否存在
二分判断条件:由于查询元素是否存在,含义是存在返回下标,不存在则需要指明查询失败,因此需要对mid和key的大于关系,小于关系,等于关系分别处理
二分循环条件:left <= right,出现left>right的情况跳出循环,这种情况发生于当left,mid,right指向同一个数时,这个数还不是目标值,则left>right,则整个查找结束返回-1
二分返回值:若元素存在,则mid==key条件成立,返回mid,若元素不存在,出现left > right,跳出循环,返回-1

int binarySearch(int left, int right, int key)
{
   
	while(left <= right)
	{
   
		mid 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值