• 二分   三分搜索


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

  • 相关阅读:
    day01的那些事
    Activity活动
    开始认真学习Android了
    《知其所以然》读书笔记
    网络编程——完成端口
    开发服务器端——工程配置
    完善自己的学习方法
    WSAAsyncSelect模型
    双缓冲绘图
    ListControl常用操作汇总
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/5781636.html
Copyright © 2020-2023  润新知