zoukankan      html  css  js  c++  java
  • 二分三分法学习小结

    二分查找算法:
    二分查找算法就是从单调有序的集合中从两端不断查找元素,然后不断缩小范围直至查到该元素或缩至最小无解的过程。
    时间复杂度:O (logn),优于直接顺序查找O(n)
    例:
    在这里插入图片描述

       //x:待查找的元素, n:数组集合大小, num数组单调递增
        int low=0,high=n,mid,res = -1;  //low:集合下界 high:集合上节
        while(low<=high)                     
        {
            mid=(low+high)/2;   //mid:将集合分割为两部分
            if(num[mid]==x)	 //查找到符合元素x
            {
               res = mid;
    	   break;	           
            }        
            else if(num[mid]<x)//x在右边部分,调整集合下界
               low=mid+1;
            else		     //x在左边部分,调整集合上界
               high=mid-1;
        }                     //若未找到x,则res = -1
    

    三分法:
    当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。
    例:
    在这里插入图片描述
    类似二分的定义Left和Right
    mid = (Left + Right) / 2
    midmid = (mid + Right) / 2;
    如果mid靠近极值点,则Right = midmid;
    否则(即midmid靠近极值点),则Left = mid;

    double mid, midmid;
    while ( low + eps < high )
    {
        mid = (low + high) / 2;
        midmid = (mid + high ) / 2;
        double cmid = cal(mid);
        double cmidmid = cal(midmid);
        if ( cmid > cmidmid ) 
    		    high = midmid;
        else 
            low = mid;
    }
    double cal(double x)
    {
        returnD* (h - x) / (H - x) + x;
        //这里放要求的函数;    
    }
    

    在实际问题中,有时利用二分、三分法可以较为精确地求解出一些临界值。

    DP:
    DP的种类有很多:经典DP,区间DP,树形DP,数位DP,概率(期望)DP,状压DP,数据结构优化的DP等。动态规划真的是很多,是难点。这大概也是比赛时很多同学卡住的原因吧,老师说DP没什么好办法,多做题呗。现在的题目很多就感觉很不简单了,以后还有这么多,感觉压力好大。还是要多看资料,多做题啊。

    状压DP是基于状态压缩的动态规划,又叫做集合动态规划。
    这是一类以集合为状态的特殊的动态规划问题。有些时候,需要被记录到得状态有很多,但是对每个状态都开一维来记录显然是行不通的,我们就考虑把这些状态压缩一下,通常情况下,若只有两种状态,我们会把状态用二进制表示,每个格子的状态只有1或0,然后把它转成十进制来记录。

  • 相关阅读:
    Java学习
    Java学习
    Vue.js学习(十五)—— ref和$refs的使用
    Vue.js学习(十四)—— Vue中的导航守卫(路由守卫)
    Vue.js学习(十二)—— Vue 全局挂载自定义函数
    Vue.js学习(十一)—— 项目开始、首页入门(main.js)
    Vue.js学习(十)—— element-ui 实战各种小技巧(长期更新)(转)
    Vue.js学习(九)—— normalize.css在vue中使用
    Vue.js学习(七)—— Vue开发与调试工具之vscode
    Vue.js学习(六)—— 轻量级JS Cookie插件
  • 原文地址:https://www.cnblogs.com/study-hard-forever/p/12130010.html
Copyright © 2011-2022 走看看