算法分析
lezak++
努力是及时完成该做的事情!
展开
-
动态规划—资源分配
概要动态规划的决策不是线性的而是全面考虑到各种不同情况分别进行决策,最后通过多阶段决策逐步找出问题最优解。而当前决策也会依赖于上一阶段的决策,此时便会发生状态的转移。动态规划算法可以说是一种“聪明的蛮力法”,因为动态规划是会考虑到每一种可能,而聪明的地方是相对于蛮力法,它去掉了很多没必要的运算。例1、资源分配问题现有7万元需要投资到A,B,C三个项目,利润表如下图。求总利润分配...原创 2019-12-17 17:29:32 · 4324 阅读 · 0 评论 -
分治算法
概要分治法求解问题的过程是,将整个问题分解成若干个小问题分而治之。分治法求解很自然可以用一个递归过程来表示。分治法就是一种找大规模问题与小规模问题关系的方法,这恰好也是递归设计方法的一种具体的策略。折半查找也是分治的一种。例1 残缺棋盘问题描述:残缺棋盘是由一个2的k次方*2的k次(k>=1)个方格组成的棋盘,其中恰有1个方格残缺。上图给出k=1时各种情况的残缺棋盘...原创 2019-12-10 16:37:19 · 210 阅读 · 0 评论 -
迭代算法
概要迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。迭代包括:递推算法和倒退算法。递推法简单的例子有累加和累乘倒推法例1:穿越沙漠问题问题描述:一辆吉普车穿越1000km的沙漠。吉普车的总装有油量为500加仑,耗油量为一加仑/km。由于沙漠中没有油库,必须先用这辆车在沙漠中建立临时油库。若吉普车用最少的耗油量穿越沙漠,应在哪些地方建立油库,以及...原创 2019-12-08 15:23:44 · 1644 阅读 · 0 评论