zoukankan      html  css  js  c++  java
  • 二分   三分搜索

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

  • 相关阅读:
    .dll .h .lib等文件的作用与区别
    [转自]语言黑客的福音
    [转载]一个台湾程序员的心历路程
    Servlet学习总结
    会话跟踪(Cookie & Session)
    JSP学习总结
    人往高处走,水往低处流
    GDI 和GDI+ 混合编程
    常用到的知识
    Sqlite3相关
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/5781635.html
Copyright © 2011-2022 走看看