算法分析
文章平均质量分 83
nan_black
路漫漫其修远兮,吾将上下而求索。
愿学习之路与你相伴~
展开
-
超详细!动态规划详解分析(典型例题分析和对比,附源码)
为啥要使用动态规划?什么时候使用动态规划?以下是我的一些理解和心得,如果你感兴趣,就接着往下看吧。对您有帮助的话记得给我点个赞哟!动态规划的基本思想动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中 得到原有问题的解。与分治法不同的是,动态规划经分解后得到的子问题原创 2020-12-17 17:53:30 · 12984 阅读 · 6 评论 -
算法笔记之迭代算法(正推和倒推)
迭代算法笔记迭代法概念:迭代法(iteration)也叫“辗转法”,是一种不断用变量旧值推出新值的解决问题的方法。步骤1.确定迭代模型根据问题描述,分析出前一个值与下一个值的迭代关系数学模型。2.建立迭代关系式递推数学模型一般是带下标的字母,在算法设计中要将其转换为“循环不变式”(迭代关系式)3.对迭代过程进行控制确定在什么时候结束迭代过程。迭代模型是通过小规模问题逐步解决大规模问题的解。1.递推法(正推)问题:一对兔子从出生后第三个月开始,每月生一对兔子。小兔子到第三个月又开始生原创 2020-11-21 21:10:35 · 3112 阅读 · 0 评论 -
分治算法详细讲解(含经典例题分析)
分治法思路:将整个问题分解成若干小问题后再分而治之。如果分解得到的子问题相对来说还是太大,则可反复使用分治策略将这些子问题分成更小的同类型子问题,直至产生方便求解的子问题,必要时逐步合并这些子问题的解,从而得到问题的解。分治算法可以由递归过程来表示,因为分治法就是一种找大规模问题与小规模问题关系的方法,是递归设计的一种具体策略。步骤1.分解将原问题分解为若干规模较小,相互独立,与原问题相同的子问题。2.解决若干子问题较小而容易被解决则直接解决,否则再继续分解为更小的子问题,直到容易解决。3.原创 2020-11-22 11:58:48 · 41694 阅读 · 8 评论 -
贪心算法详细讲解(附例题,一看就会)
概念贪心算法(Greedy Alogorithm)又叫登山算法,它的根本思想是逐步到达山顶,即逐步获得最优解,是解决最优化问题时的一种简单但是适用范围有限的策略。贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。贪心策略要无后向性,也就是说某状态以后的过程不会影响以前的状态,至于当前状态有关。贪心算法是对某些求解最优解问题的最简单、最迅速的技术。某些问题的最优解可以通过一系列的最优的选择即贪心选择来达到。但局部最优并不总能获得整体最优解,但通常能获得近似最优解。在每一部贪心选择中,只考虑当前对原创 2020-11-22 16:09:02 · 20623 阅读 · 8 评论