二分查找--java进阶day06
1.二分查找
https://kdocs.cn/l/ciMkwngvaWfz?linkname=150996908
二分查找:每一次查找都从中间的元素查起,根据比较的大小来折半,以此类推,直到最后找到该数

2.二分查找的前提
确保查找的数组是排好序的数组,否则就会出错
如下图,假设我们要找的是200,箭头指向88,发现不是200,然后比大小,88小,所以右半部分折半,接着往左边找,但实际情况就是200在右边

3.分析二分查找
1.获取中间索引
拿着最小索引和最大索引,相加再除以2即可

2.右折半max操作
如图,现在中间索引指向的元素是55,比33大,那么就应该折去左半边,接着往右半边查找

折半后,我们应该让max指向3号索引,该如何修改呢?
很简单,我们只要让mid索引-1,然后再把值赋给max就行了

3.重新计算中间索引
max发生变化后,需要重新计算mid,还是max加min除以2

4.左折半min操作
mid指向22,22比33小,所以左边折半,往右边找,min就需要重新修改

让mid加1,然后赋值给min即可

4.折半的条件
https://kdocs.cn/l/ciMkwngvaWfz?linkname=150996918
根据ppt的演示我们会知道,当min>max时,右边已经没有可以查找的元素

所以,只有当min<=max时,才可以进行折半查找
5.二分查找整体思路

6.代码演示

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号