用二分法解题时,mid上下取值正确与否关系程序是否进入死循环!!
对与if(test(mid)) l=mid;
else r=mid-1; 如果用 mid=(l+r)/2 会出现问题!!! 取l=3,r=4,会发现程序死循环!!!得用 mid=l+(r-l+1)/2;
对于if(test(mid)) r=mid;
else l=mid+1; 显然得用mid=(l+r)/2
两种方式一个向上,一个向下取整,具体问题具体分析!!
本文探讨了使用二分法解决编程问题时,如何正确选取中间值(mid)以避免陷入死循环。通过两个不同的更新边界(l 和 r)的方法,解释了向上取整和向下取整的区别及其适用场景。
          用二分法解题时,mid上下取值正确与否关系程序是否进入死循环!!
对与if(test(mid)) l=mid;
else r=mid-1; 如果用 mid=(l+r)/2 会出现问题!!! 取l=3,r=4,会发现程序死循环!!!得用 mid=l+(r-l+1)/2;
对于if(test(mid)) r=mid;
else l=mid+1; 显然得用mid=(l+r)/2
两种方式一个向上,一个向下取整,具体问题具体分析!!

被折叠的  条评论
		 为什么被折叠?