• 二分   三分搜索


    二分:二分 <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;
        }
    }

  • 相关阅读:
    Js:返回上一页
    select设置选中项/select的级联
    js闭包
    bootstrap
    My97DatePicker使用 、layDate 日期与时间组件
    IO流
    java之String工具类和File类
    Python学习之路文件file常用方法
    Python学习之路-集合set的常用方法
    Python学习之路-字典外传
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/5781635.html
Copyright © 2020-2023  润新知