二分、三分查找算法的原理及实现代码。
简单定义
在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。
时间复杂度
O (logn),优于直接顺序查找O(n)
原理
左闭右开二分
|
|
STL
Double型二分
while(fabs(right-left)>eps)//判断语句
注:1、right与left之差进行判断
2、eps的值够精度,不然很容易wa
三分法
在二分查找的基础上,在右区间(或左区间)再进行一次二分,这样的查找算法称为三分查找,也就是三分
当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。