二分查找--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.代码演示

posted @ 2025-03-14 19:09  直実  阅读(10)  评论(0)    收藏  举报