算法导论
算法导论学习笔记和心得体会
goodluckcwl
有价值、有影响力的研究
展开
-
算法学习(八)动态规划
动态规划如果问题是由交叠的子问题组成,我们就可以用动态规划技术解决它。与其对子问题一次又一次地求解,还不如对每个子问题只求解一次并记录在表中,这样就可以从表格中得出原问题的解。 最优化法则:最优化问题任一实例的解都是由其较小实例的解构成的。这个法则在大多数情况下是成立的,在应用动态规划算法时,要检查该法则是否成立。基本例子背包问题和记忆功能经典动态规划算法是自底向上的,用...原创 2017-02-14 10:17:51 · 307 阅读 · 0 评论 -
算法学习(九)贪婪技术
贪婪法通过一系列步骤来构造问题的解,每一步对目前构造的部分解做一个扩展,直到获得问题的完整解为止。所作的每一步必须:可行局部最优不可取消 贪婪法的困难之处在于如何证明某一贪婪算法能获得最优解。常用的证明是使用数学归纳法。 第二个证明方法是证明在接近问题目标的过程中,贪婪法每一步的选择都不比其他任何算法差。 第三个证明是基于算法的输出。 贪婪技术背后复杂的理论是拟阵。Pr...原创 2017-02-14 10:33:47 · 1474 阅读 · 0 评论 -
算法学习(一)绪论
算法问题求解步骤:理解问题:试着手工处理一些小规模的例子,考虑一些特殊的情况;严格确定需要算法处理的实例范围了解设备的性能:顺序算法or并行算法在精确解法和近似解法之间做出选择算法的设计技术确定适当的数据结构算法的描述算法的正确性证明:算法的正确性证明一般使用数学归纳法算法的分析:时间效率和空间效率。算法应该具有的另一个特性是简单性、一般性。为算法写代码算法的几类基本问...原创 2018-03-09 17:27:56 · 205 阅读 · 0 评论 -
算法导论学习笔记(二)排序和顺序统计量
总结各种排序算法,时间复杂度与空间复杂度,优缺点等。堆排序堆排序的时间复杂度是θ(nlogn)θ(nlogn)\theta(n\log n),堆排序具有空间原址性。堆是一个数组,可以看成一棵近似的完全二叉树。除了最底层之外,该树完全填满,给定一个节点i,可以很容易地计算其父节点为floor(i/2),左子节点为2i,右子节点为2i+1.最大堆是指堆中最大元素存在根节点。建...原创 2018-03-25 19:29:29 · 368 阅读 · 0 评论