今天谈论三分忽然感觉传统的做法有点浪费时间
传统来说三分写法分为两种
第一种,对于区间 l~r (我一直以来都用这种方法)
midl=(l+r)/2
midr=(midl+r)/2
然后判断以后,l=midl或者r=midr
第二种
midl=l+(r-l)/3
midr=r-(r-l)/3
同样判断以后,l=midl或者r=midr
第一种情况相当于每次一半的概率,区间长度减少1/2,一半概率,区间长度减少1/4
第二种情况相当于每次都会减少1/3
但如果要是改成
midl=(l+r)/2
midr=midl+1
相当于每次一半的概率,区间长度减少1/2,一半概率,区间长度减少近似1/2,应该比前两种都优秀
当处于凸峰时,f(midl)<f(midr)则l=midl,否则r=midr即可
当处于凹峰时,f(midl)>f(midr)则l=midl,否则r=midr即可