《算法导论》
chensilly8888
求饥若渴,大智若愚。
展开
-
《算法导论》学习笔记——钢条切割,斐波那契数列(动态规划)
一、动态规划动态规划思想:通过子问题求解原问题,应用于子问题重叠的情况。动态规划特点:1.最优子结构2.重叠子问题动态规划步骤:1.刻画一个最优解的结构特征。2.递归地定义最优解的值。3.计算最优解的值,通常采用自底向上的方法。4.利用计算出的信息构造一个最优解。动态规划实现方法:1.带备忘的自顶向下法2,自底向上法分治法与动态规划法比较原创 2015-01-04 19:10:50 · 1636 阅读 · 0 评论 -
《算法导论》学习笔记——最大子数组(分治策略,动态规划)
一、分治策略分治法的思想 将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。递归式 递归式与分治方法是紧密相关的,因为使用递归式可以很自然地刻画分治算法的运行时间。在分治策略中,我们递归地求解一个问题,在每层递归中应用如下的三个步骤: 分解:将问题划分为一些子问题,子问题的形式与原问题一样,只原创 2015-01-04 10:42:51 · 2513 阅读 · 0 评论 -
《算法导论》学习笔记——背包问题
一、背包问题(knapsack problem)(参考维基百科: http://en.wikipedia.org/wiki/Knapsack_problem)1. 0-1 背包问题(0-1 knapsack problem the most common problem):2. 有界背包问题(bounded knapsack problem BKP):3.原创 2015-03-03 16:11:07 · 1079 阅读 · 0 评论 -
《算法导论》学习笔记——最长公共子序列(动态规划)
#最长公共子序列(LongestCommonSubsequence Problem;LCS)##问题描述给定两个序列$X={x_1,x_2,x_3...,x_m}$和$Y={y_1,y_2,y_3,...,y_n}$,求X和Y的最长公共子序列。>例子:$X={A,B,C,B,D,A,B}$,$y={B,D,C,A,B,A}$,最长公共子序列为${B,C,B,A}$。原创 2015-05-04 23:08:10 · 1048 阅读 · 0 评论 -
查找(搜索)算法(**Search algorithm**)
(学习资料来源:维基百科,《算法导论》,《大话数据结构》,《编程珠玑》,《编程珠玑续》,google)查找(搜索)算法(Search algorithm)(下面的定义参考自《大话数据结构》) 查找表(Search Table)由同一类型的数据元素(或记录)构成的集合。 关键字(Key) 是数据元素中某个数据项的值,又称为键值,用它可以标识一个数据元素。也可以标志原创 2015-04-17 16:01:02 · 2115 阅读 · 0 评论 -
查找专题——二分搜索及其拓展
一、二分查找(折半搜索)(binary search / half-interval search)思想:算法采用分治思想(divide and conquer algorithm),二分查找从表中间开始查找目标元素。如果找到一致元素,则查找成功。如果中间元素比目标元素小,则仍用二分查找方法查找表的后半部分(表是递增排列的),反之中间元素比目标元素大,则查找表的前半部分。输入:查找表必原创 2015-01-24 19:27:31 · 792 阅读 · 0 评论