三分算法详解

什么时候用三分

众所周知,二分搜索是对于有序数列。而三分则是运用于单峰函数。

代码

 while (l + eps <= r)  //eps 只在有小数的情况下使用,因为double精度有限
		{
            mid1 = l + 1.0 * (r - l) / 3;
            mid2 = r - 1.0 * (r - l) / 3;
            if (f(mid1) < f(mid2)) r = mid2;
            else if (f(mid1) > f(mid2)) l = mid1;
            else 
			{
                l = mid1;
                r = mid2;
            }
        }

例题

「一本通 1.2 例 3」曲线
「一本通 1.2 例 3」曲线 题解
「一本通 1.2 练习 3」灯泡
「一本通 1.2 练习 3」灯泡 题解

你可能感兴趣的:(三分,算法详解,算法,三分)