递归分析和分治算法
2015-08-24 16:02
288 查看
递归分析
递归分析一般利用的方法是主定理,辅助的方法有替换法(也就是数学归纳法),递归树法~主定理:
递归树:
注意:主定理的证明也是通过递归树的方法进行的。
分治方法算是算法设计中一种很常见的设计方式,一般能够大大提高算法的时间复杂度的~分治的思想很简单,就是将一个问题切分为两个或者多个独立的子问题,子问题的解决方案同,子问题解决之后通过合并算法组合成更大问题的结果,所以分治算法主要有三个步骤,Divide(切分子问题的方案)、Conquer(一般子问题独立相同的,所以这里一般是递归的解决子问题)、Combine(子问题提升至更大问题的时候需要对子问题的解决方案进行合并)。分治算法还是对待不同的问题需要不同的分治方案,所以掌握缩小问题的规模的思想还是比较重要的,比较高级的动态规划和贪心也都是通过缩小问题规模提升时间复杂度的。所以感觉还是多掌握一些具体实例的分治方案,这样碰到陌生问题的时候可以像熟悉的问题靠拢,所以接下来具体分析一下算法导论中一些分治的实例。
分治算法
1. 斐波那契数列2. 矩阵乘法
下面是斯特拉森算法(目前可行的最优算法):
3. 树的面积
参考:/article/5111873.html
相关文章推荐
- 小试随机森林(random forest)算法ml
- 信任
- [python] 爬取网站所有的URL
- Cache
- ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- Android layer-list 圆角阴影背景
- Gearman介绍、调研、测试与原理分析
- STL学习----入门(1)[iterator]
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
- Android Cursor
- Wireshark 与 TCP/IP四层模型
- C++ 入门教程(五) 使用 std::cout 输出和数字分位符的使用
- 学习android 显式Intent和隐式Intent
- 高效实用内存
- hdoj 3665 Seaside
- C++ 学习路线推荐
- python核心编程读书笔记
- 在android5.1的init进程中加入读取手机序列码
- WEB应用服务器选型摘要
- 排序算法(五)二分排序