数据结构--动态规划
2016-02-05 22:30
302 查看
引入:斐波拉契数列
1、递归
2、记忆化
3、动态规划
eg.上台阶:每步可跨一个或两个台阶,到达第n阶的方案种数
动态规划:颠倒计算方向:由自顶向下递归,为自底向上迭代
formal:最长子序列
1、递归
减而治之
分而治之
2、动态规划
1、递归
int fib(int n) { return n<2?n:fib(n-1)+fib(n-2); }
2、记忆化
int a[50]={0}; int fib(int n) { if(n<2) return n; else if(a ==0) return a =fib(n-1)+fib(n-2); else return a ; }
3、动态规划
int f=0,g=1,n; while(0<n--){ g=g+f; f=g-f; }
eg.上台阶:每步可跨一个或两个台阶,到达第n阶的方案种数
动态规划:颠倒计算方向:由自顶向下递归,为自底向上迭代
formal:最长子序列
1、递归
int LCS(char a[],int n,char b[],int m) { if(n==0||m==0) return 0; else { if(a[n-1]==b[m-1]) return 1+LCS(a,n-1,b,m-1); else return max(LCS(a,n-1,b,m),LCS(a,n,b,m-1)); } }
减而治之
分而治之
2、动态规划
相关文章推荐
- 数据结构(5)--栈的定义以及相关操作的实现
- 数据结构实验之排序四:寻找大富翁
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序五:归并求逆序数
- 数据结构之单向链表
- 小蚂蚁学习数据结构(30)——图的其他知识点简介
- 数据结构(4)--循环链表的应用之约瑟夫环问题以及线性表总结之顺序表与链表的比较
- 【Redis笔记(六)】 Redis数据结构 - 有序集合zset
- 学习笔记------数据结构(C语言版)队列链式存储
- LinuxC常用数据结构及函数总结
- C++数据结构栈的实现
- Floodlight之 FloodlightContextStore 数据结构
- 单源最短路径之Bellman-Ford 算法
- 数据结构实验之二叉树六:哈夫曼编码
- Nginx源码分析 - 基础数据结构篇 - 单向链表结构 ngx_list.c
- 数据结构之红黑树与平衡二叉树
- 数据结构(3)--线性表实现一元多项式加法
- 【BZOJ4370】【IOI2015】horses 数据结构 平衡树+线段树
- 小蚂蚁学习数据结构(29)——图的存储表示
- 学习笔记------数据结构(C语言版)栈和递归 汉诺塔