算法导论笔记(四)
来源:互联网 发布:动易cms 无法上传视频 编辑:程序博客网 时间:2024/05/17 04:12
第八章:动态规划
1.币值最大化问题:
给定一排硬币,不能选相邻的两枚硬币
Fn = {包括这枚币 + Fn-2 , 不包括这枚币 Fn-1}
f0 = 0
类似斐波那契?
自底向上计算最大的币值,f0,f1...
2.找零问题:
F(n) = min{f (n - dj)} + 1 dj为各种币值
自底向上计算最少找零数
3.收集硬币问题
Fn = max(F(i-1,j),F(i,j-1)}
自底向上填表格计算收集的最大钱币数
4.背包问题
Fn = max{F(i,j-wi),F(i-1,j)}比较带它,可携带重量变成j - wi,和不携带他,可携带重量不变的两种情况的最大值
5.最优二叉树的查找算法(动态规划):
每个节点存在一个概率p i
C(1,n) = ∑pi * long(i) 节点i的层数
eg.一棵以ak为根节点的最优二叉树的
c(i,j) = pk * 1 + min{∑s∈(i~k-1)(ps * s的层数+1) + ∑s∈(k+1,j) (ps * s的层数+1)}
=∑s∈(i,j) ps + min{C(i,k-1) +C (k+1,j)}
填表找最小
6.warshall算法和floyd算法
warshall算法:
有向图、邻接矩阵、传递闭包
war shall算法只通过一次遍历来实现构造传递闭包
两个性质:Rk-1中为1的Rk中也一定为1
Rk-1 中为0的在Rk中,rij = 1只有在i行k列 = 1 k行j列= 1时候rij会变为1
算法为:三个for循环最里面为or and and 来以此确定 rij的值
Floyd算法:
计算完全最短路径
init dij = 无穷
看图修改距离
dij = {dij,dik-1,dk-1j}
三个for循环遍历
- 算法导论笔记(四)
- 算法导论笔记(四)
- 算法导论学习笔记(四) 初稿
- 算法导论笔记(四) : 计数排序
- 算法导论笔记(第一章)
- 算法导论笔记(1)
- 笔记----算法导论(一)
- 《算法导论》笔记(一)
- 算法导论(1) 笔记
- 算法导论笔记(二)
- 算法导论笔记(三)
- 算法导论笔记(五)
- 算法导论(四) (1)
- 推荐系统导论笔记(四)
- MIT 6.00 导论课程笔记(四)
- 算法导论学习笔记(四):求X的N次方的二分实现
- 算法导论学习笔记(四)图论之最小生成树
- 算法导论学习笔记之四--堆排序
- 【windows】用windows的cmd命令输入行快捷打开windows自带的相关的小程序软件总结
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- AngularJS笔记--自定义指令
- 了解HTML表单之input元素的23种type类型
- Mysql升级以及主从备份集群配置
- 算法导论笔记(四)
- GPU编程优化
- 浅析Promise用法
- Ubuntu 出现The system is running in low-graphics mode解决
- String s = new String(“xyz”)产生几个对象?
- 网络拓扑自动发现
- Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=2269,
- androidStudio错误记录-及解决方式
- 中企动力与中国银行达成公益联盟战略合作