原理什么的都是相同的,三分搜索也是基于分治思想的查找算法。
但是我们仔细想想二分查找,是不是只适合单调函数。
而三分搜索可以用于凸函数和凹函数。
三分搜索同样有left和right,但是中点不再是一个mid,而是两个
midl=(left+right)/2; midr=(midl+right)/2;
因此可以判断出两个中点相对于函数极值的位置
懒得画图了,直接拿网上的一个图来解释一下。
我的理解是当要求一个凸函数或者凹函数的极值时,可以使用三分搜索。
下面是三分搜索的模板
下面是一个三分的例题。
ac代码:
还是模板题
要掌握还是要多加练习,模板题只是入个门。
二分三分也经常是用来结合别的算法一起解题。
//人一我十,人十我百。
网友评论