算法复习-一天突击

重点1 三种表示方法

在这里插入图片描述

主定理

在这里插入图片描述

2. 递归式求解(递归树法)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.

在这里插入图片描述

4.排序

在这里插入图片描述

5.DP

5.1 装配线调度问题 O(n)

在这里插入图片描述

递归表达式

在这里插入图片描述

5.2 矩阵链乘问题 O(n3)

在这里插入图片描述

递归表达式

在这里插入图片描述

5.3 最长公共子序列问题

c[i,j] 从左边起长度i的s1的子串和长度j的s2的子串的最长公共子序列
思考:
1.当s1(i)和s2(j)的最后一个字符相等时,c[i-1,j-1]就比c[i,j]小1
2.当最后一个字符不等时,i-1和j-1都有可能和c[i,j]相等,取两者中最大的即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.3 0-1背包的DP求解 O(C*n)

c[i,w] 表示选前i项物品 背包容量w
填表时选最大值填入,rec数组记录是否将第i个物品放入了背包
在这里插入图片描述

在这里插入图片描述
追踪时从最终态的商品5开始,13-4=9 去i=5-1 c=9查看上个商品是否在最优解中

在这里插入图片描述
前i件商品装背包的最优解,等于
1.前i-1件商品装背包的最优解(第i件商品重量大于背包容积)
2.前i-1件商品 容积-wi的最优解+第i件的价格(说明最后一件可装入)

5.4 最大子数组问题

D[i] 从i开始的子数组的最大和
从最右边开始递归 D[i+1]>0时说明D[i]一定包含D[i+1]
在这里插入图片描述
在这里插入图片描述

6.贪心策略

6.1 分数背包问题

在这里插入图片描述
物品可拆分拿,那么选择价格/重量最高的商品优先即可

6.2 哈夫曼编码

在这里插入图片描述

6.3 迪杰斯特拉(单源最短路径算法)O(n2)

注意:环路权值不能为负 否则不能求
在这里插入图片描述

松弛定理

在这里插入图片描述
每次选最小距离的节点加入s集合中作为新的一跳
在这里插入图片描述
利用堆实现dj
在这里插入图片描述
V节点数贪心查找跳点最小值的代价,E边数松弛代价

不同的实现方法时间复杂度不同

在这里插入图片描述

对于无权值或权值全相等

广度优先搜索(先进先出队列)替代优先队列

在这里插入图片描述

BellMan_Ford(O(V*E))

在这里插入图片描述
在这里插入图片描述

回溯法(八皇后)

回溯法思路的简单描述是:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。

在这里插入图片描述
在这里插入图片描述

分支限界法

广度优先搜索 LCS(最小代价搜索)

分支限界法的基本思想:
求解目标:分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。
搜索方式:以广度优先或以最小耗费优先的方式搜索解空间树。分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值