算法分析与设计期末复习
文章平均质量分 61
ggggzzyy
这个作者很懒,什么都没留下…
展开
-
算法分析与设计第二版(李春葆)第一章概论
算法的5条性质·衡量算法效率的方法:事后统计法和事前分析估算法。算法的执行时间主要与问题规模有关算法中的基本语句时执行次数与整个算法的执行次数成正比的语句渐进符号 渐进符号有:O,Ω,θ。定义1上界(大O符号):f(n)=O(g(n)),表示存在n0 c,当n>=n0时,c*g(n)>=f(n)。定义2下界(大Ω符号):f(n)=Ω(g(n)),表示存在n0 c,当n>=n0时,c*g(n)=n0时,c1*g(.........原创 2022-06-05 10:20:17 · 2473 阅读 · 0 评论 -
算法分析与设计第二版(李春葆)第三章分治法
分治法所能解决的问题一般具有以下几个特征:该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质利用该问题分解出的子问题的解,可以合并为该问题的解该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共子问题过程划分算法此算法就是不断地分治,其每一趟也比较好理解。............原创 2022-06-14 18:03:44 · 927 阅读 · 0 评论 -
算法分析与设计第二版(李春葆)第五章回溯法
基本思想:先定义问题的解空间,然后在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。三个问题: 两种求解的可能当所给的问题是从n哥元素的集合S中找出满足某种性质的子集时,相应的解空间树称为子集树 当所给问题是确定n哥元素满足某种性质的排列时,相应的解空间树称为排列树在遍历过程中,为减少无效搜索,应用约束条件、目标函数等剪枝函数进行剪枝。两种剪枝函数:约束函数和限界函数同时使用约束条件和目标函数的界进行裁剪的是0/1背包问题只使用约束条件进行裁剪的是N皇后问题回溯法的算法框架按照问题的解空间一般分原创 2022-06-14 21:45:56 · 610 阅读 · 0 评论 -
算法分析与设计第二版(李春葆)第六章分支界限法
分支界限法类似于回溯法,一般回溯法目标是找出所有解,二分支界限法是找出满足条件的一个解或者最优解 优先队列相较于队列多了一个将活结点表组成一个有限队列。设优先级用p值来确定。最大优先队列规定p值越大优先级越高,常用大根堆来实现。最小有限队列规定p值越小优先级越高,常用小根堆来实现。采用大根堆来实现优先队列,最坏的时间和空间的复杂度为2的n次方 步骤是从当前位开始往后遍历,如果sumw不超过就让e.ub加上v[i]价值,如果超过,就设超过的物品j,让e.ub加上剩余还可以装的重量乘以j物品的单位价值。采用小原创 2022-06-15 15:47:30 · 559 阅读 · 0 评论 -
算法分析与设计第二版(李春葆)第七章贪心法
贪心算法在每一步做出局部最优的贪心选择,这种局部最优选择并不总能获得最优解,但通常能够获得近似最优解。贪心算法困难的地方就在于证明局部最优解合并成为全局最优解特点思想: 例题(并不难,掌握思想即可) 时间复杂度N(n*log2(n))注意:贪心算法求解不了0-1背包问题 ,下面的背包问题可以取一部分放进其实思路很显而易见,选取单位重量下价值最大的物品,再背包价值增长和背包容量消耗之间寻找平衡,这样的做法性价比最高,能得到最优解。 该算法的时间复杂度N(n*log2(n))............原创 2022-06-04 18:14:59 · 566 阅读 · 0 评论 -
算法分析与设计第二版(李春葆)第八章动态规划
动态规划是一种解决多阶段决策问题的优化方法,把多阶段问题转换为一个个单阶段问题,利用各个阶段之间的关系求解最优解原理:问题的最优解包含的子问题也是最优的。无后效性:该问题状态一旦确定,就不受这个状态以后决策的影响。有重叠子问题:子问题之间不独立。子问题的解在下一段决策时可能会被多次使用到,就像计算Fib(5)时可能用到Fib(3),储存到数组中。这也正是动态规划相较于其他算法的优势。分析最优解的性质和结构特性递归地定义最优值以自底向上(递推)的方式求解最优值根据最优值的信息构造最优解备忘录方法是动态规划方法原创 2022-06-03 14:46:13 · 667 阅读 · 0 评论