• 二分   三分搜索


    二分:二分 <wbr> <wbr> <wbr>三分搜索

    最经典的就是二分求方程解,以上这个图(原创)R是根处,x1,x2是去的两个边,另x=(x1+x2)/2;f(x)<0;就令x1=x;否则令x2=x;然后重复这个过程直到找到跟,或者达到题目要求的精度;
    递归代码:
    int binSearch(const int *Array,int start,int end,int key)
    {
        int left,right;
        int mid;
        left=start;
        right=end;
        //注释中为递归算法,执行效率低,不推荐
        
     
        while(left<=right)
        {
            mid=(left+right)/2;
            if(key==Array[mid])  return mid;
            else if(key
            else if(key>Array[mid]) left=mid+1;
        }
        return -1;
        //找不到就返回-1
    }

    三分:
    二分 <wbr> <wbr> <wbr>三分搜索

    mid (Left Right) 2

    midmid (mid Right) 2;

    如果mid靠近极值点,则Right midmid

    否则(midmid靠近极值点),则Left mid;

     

    程序模版如下:

    double cal(Type a)
    {
        
    }

    void solve()
    {
        double Left, Right;
        double mid, midmid;
        double mid_value, midmid_value;
        Left MIN; Right MAX;
        while (Left EPS <= Right)
        {
            mid (Left Right) 2;
            midmid (mid Right) 2;
            if (cal(mid)>=cal(midmid)) 

                Right midmid;
            else Left mid;
        }
    }

  • 相关阅读:
    软件架构设计箴言理解
    解决vs2010没有NET Framework 2.0和3.5
    .NET连接数据库实例
    CSS选择器大全
    SilverLight全屏代码
    SilverLight数字时钟 > 我的博客有SilverLight了
    comboBox设置为只读(只选)
    WinForm 单例模式实例
    标识种子和标识增量
    jQuery固定DIV实现“返回顶部”
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/5781636.html
Copyright © 2020-2023  润新知