js算法-动态规划

自己只是随便写着,总结一下今天学到的东西,今天主要是看了算法和自己的毕设项目,真的是学习就是理论和实践相结合,不管学习什么都是这样,我今天看的js写的算法书,发现写的太好了,感觉算法其实不难,有些地方难但确实是重要的知识点,我其中看到几个算法比如图的深度优先遍历和广度优先遍历,这个分别是用栈和队列实现的,深度优先因为可以提取出重复的子问题,所以用递归就可以实现,而广度优先遍历是遍历每一层是一层一层的遍历下去,所以用队列,把有遍历的放进去,然后按照顺序访问就行了,所以用循环就可以,这里面的深度优先遍历就是因为用的递归让我理解了好久,递归现在我感觉我有点眉目了,就是在要做重复的事情,然后必须要有一个中止条件,然后每一次递归就都会把本函数执行一次,就把范围限定在一个子范围内了,还有递归在解决动态规划的时候就很有用,我们在动态规划时,就会把所有可能的情况都列出来,这里面我们就要使用递归,然后在找出最优解,这个就是我们动态规划,其中典型的有分硬币问题。所以动态规划的格局更大,结果也最优,但是就比较复杂,而贪心算法只需要找出当前最优解,所以运行快,写法简单好理解,但是有时候没有动态规划的结果优,这是我们在写的时候需要考虑的。

    原文作者:vieber
    原文地址: https://www.jianshu.com/p/ae1a5bfc2844
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞