![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法分析
weixin_43476818
这个作者很懒,什么都没留下…
展开
-
动态规划——0-1背包问题
甲打算出去旅游,被告知最多可携带20公斤重的行李(可认为甲的行李箱最大承重为20公斤),已知甲拟携带的5件(可认为此案例的规模n=5)行李的重量及其在旅行中产生的效益如表2所示:表二 拟携带行李数量n为5时的0-1背包问题示例:那么,为使所携带的行李能在旅行中产生最大效益,请问甲应该带哪几件行李?本题要求:请设计一个动态规划算法,通过该算法的运行结果来回答“甲应该携带的行李是哪几件”的问题...原创 2020-04-28 09:32:50 · 569 阅读 · 0 评论 -
动态规划——矩阵连乘
动态规划动态规划的思想也是把问题分解为规模更小的子问题,跟递归分治的区别在于,动态规划分解得到的子问题不是相互独立的,即动态规划的子问题求解需要依赖于其他的子问题的解,而递归分治得到的子问题求解是相互独立的,不需要依赖于其他子问题的解。在递归与分治中,得到的子问题的解,可能存在一些子问题的计算是相同的,那么就产生了重复计算,浪费了时间,当问题规模逐渐变大的时候,这种重复计算的问题就会被放大,导致...原创 2020-04-26 10:33:31 · 767 阅读 · 0 评论 -
芯片测试——枚举与分治
问题描述有n片芯片,已知好芯片比坏芯片至少多1片。现在需要通过测试从中找出1片好芯片,测试方法如下:将2片芯片放到测试台上,2片芯片互相测试并报告测试结果(即好或者坏);其中,好芯片的报告是正确的,而坏芯片的报告是不可靠的。请在上述背景下解决以下问题:问题1:若用枚举法从中找出1片好芯片,在最坏的情况下,需要多少测试次数?请给出详细的分析过程;问题2:相比于枚举法,为保证使用更少的测试次数,...原创 2020-04-24 14:11:08 · 979 阅读 · 0 评论 -
递归与分治
递归与分治递归算法是指直接或者间接调用自身的算法,分治算法是指将一个问题规模分为n个规模小、方便处理的子问题,最后再将这些子问题得到的结果合并。在计算机求解问题的过程中,计算时间与问题的规模呈正比,问题规模越大越难处理,规模越小就容易处理。因此当遇到问题无法处理时,可以考虑能不能将之转化为规模较小的问题,递归和分治经常一起使用。汉诺塔问题设a、b和c是3个塔座:开始时,塔座a上有n个自上而下...原创 2020-04-24 13:35:46 · 248 阅读 · 0 评论