大家写二分法经常写乱,主要是因为对区间的定义没有想清楚,区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则
确实有很多语言的标准库都采用左闭右开区间的写法,例如 Python Go Rust 等,不过也有像 Java 那样使用闭区间的写法。无论哪种写法区别并不大,本质都是同一种写法的变形。
参考这个帖子的解释:https://blog.csdn.net/groovy2007/article/details/78309120
参考灵神的视频:二分查找
蓝红区域的划分方案最终是由程序员确定的,在思考解决方案的过程中,蓝红区域的划分方案有可能有多种,但是我们应该尽量选择最优划分方案,这非常考验程序员的建模能力!
掌握五点七边的视频:这个红蓝二分法才是真的通透二分查找为什么总是写错?
红蓝二分法的模版总结:二分查找6种模版,重点是第六版-红蓝模版哈!!
红蓝二分法的题单:二分查找全部题单