zoukankan      html  css  js  c++  java
  • 【转】三分查找

    转自:  http://blog.csdn.net/acdreamers/article/details/9989197 

    首先来说说三分的概念:

    二分是把区间分为长度相等的两段,三分则是把区间分为长度相等的三段,进行查找,这样的查找称为三分查找,三分查找通
     
    常用来迅速确定最值
     
    众所周知,二分算法的要求是搜索的序列是单调序列,而三分法所面向的搜索序列的要求是:序列为一个凸性函数
     
     
     
    与二分法类似,三分算法先把区间分为长度相等的三段,那么l与r之间就有两个点,
    分别是:
    ll=l+(r-l)/3=(2l+r)/3和
    rr=r-(r-l)/3=(l+2r)/3
     
     
    也可以是:
    ll = (l + r) / 2;
    rr = (ll + r) / 2;
     
    如果ll比rr更靠近最值,我们就舍弃右区间,否则我们舍弃左区间。
     
     
    算法的正确性:
     
    1、ll与rr在最值的同一侧。由于凸性函数在最大值(最小值)任意一侧都具有单调性,因此,ll与rr中,更大
    (小)的那个数自然更为靠近最值。此时,我们远离最值的那个区间不可能包含最值,因此可以舍弃。
    2、ll与rr在最值的两侧。由于最值在中间的一个区间,因此我们舍弃一个区间后,并不会影响到最值。
  • 相关阅读:
    Java回调机制
    显示Title和隐藏Title的ListView
    ListView的小知识
    小知识点
    Shader的使用
    项目知识(二)
    项目知识(一)
    复习篇(一)Activity的生命周期和启动模式
    BootStrap 提示框
    BootStrap选项卡
  • 原文地址:https://www.cnblogs.com/sweat123/p/5674022.html
Copyright © 2011-2022 走看看