动态规划

将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解 动态规划会将每个求解过的子问题的解记录下来,这样下一次碰到同样的子问题时,就可以直接使用之前记录的结果,而 不是重复计算 可以用递归或者递推的写法实现,递归的写法又叫记忆化搜索 重叠子问题:如果...

2018-05-11 10:54:32

阅读数:37

评论数:0

动态规划与背包问题

参考文章:https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html 利用动态规划找到背包问题的最优解 number:物品的数量 capacoty:背包的容量 v:物品的价值 w...

2018-05-06 12:47:31

阅读数:40

评论数:0

使用递归实现求最大公约数

技巧转载自:http://blog.csdn.net/liuchuo/article/details/53563122 /* 如果a与b是分母与分子返回1说明,a与b已经是最简分数 另外最小公倍数的公式为:最小公倍数 = a * b * 最大公约数 */ int gcd(in...

2018-03-20 20:48:44

阅读数:42

评论数:0

动态规划——求最大公共子序列(一种可以求数据相似度匹配算法)

算法说明 这是一种利用动态规划思想实现的算法,也即是在运算过程中每一次计算都求出一个值,然后将这个值和前面计算的值比较,如果这个值比前面的值更加接近我们需要的结果则存储这个值,否则存储前面计算的值,这样在算法最后我就能得到最优结果。 算法优点 运算效率高 据说科学家DNA相似度的检测...

2017-08-21 10:30:40

阅读数:628

评论数:0

NP问题

什么是NP问题? 这是一种尚且没有更好解决方案的问题,这类的问题往往无法完成,例如旅行商问题,但是可以依靠贪婪算法计算出近似解。 如何识别NP问题 1.当元素较少时效率很快,但是当元素一旦增加,速度会变得非常慢。 2.涉及要找出“所有组合”中的一个“特别的组合”的问题通常是NP问题。...

2017-08-18 16:02:26

阅读数:135

评论数:0

贪婪算法

算法简介 这种算法是为了解决一些无法完成的问题(例如使用常规算法计算会超时等),当然这种算法运算出来的并不一定是最优解,而是近似解。 算法过程 只要每次都选择当前的最优解即可。 例如你有一个包只可以装35KG的东西,现在有A 15KG,B 20KG,C 30KG.所以按照贪婪算法(选...

2017-08-17 11:53:01

阅读数:360

评论数:0

狄克斯特拉算法

狄克斯特拉的作用 在一张图中,每一节点到另外一个节点都有一个权重(权重的意思就像从A节点到B节点需要花费一定的时间,而权重就是这个时间)这是一种用来求两点之间最小总权重路径的算法(当然也可以求最大)。 特殊情况 当某点到另外一点的权重为负时,狄克斯特拉算法无效。为什么会这样我会在文末给出答...

2017-08-15 21:38:31

阅读数:334

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭