![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
文章平均质量分 82
wangxiaojun911
这个作者很懒,什么都没留下…
展开
-
动态规划(Dynamic Programming)与贪心算法(Greedy Algorithms)
动态规划动态规划是用来解决优化问题的,即要作出一组选择以达到最优解。动态规划有两个标志:一是可以划分最优子问题,二是子问题有重叠性(可以自底向上存储这些子问题的解,把算法效率从指数时间降到多项式时间)。例如,动态规划可以运用在矩阵相乘上。在矩阵连乘的时候,在中间增加括号是不影响最后结果的。也就是说 A * B * C = A * ( B * C )。假设A、B、C的维数为10 X 100,原创 2009-10-18 13:46:00 · 6599 阅读 · 0 评论 -
递归式
常常需要对递归式的效率进行分析。然而遗憾的是,并没有通用的规律可循。所以解递归式就变成了猜谜游戏。比如:求递归式T(n) = 2 * T( floor(n/2) ) + n,猜测T(n) T( floor(n/2) ) 那么把上式带入要求证的方程中:T(n) = c * n * lgn - c * n * lg2 + n = c * n * lgn - c * n + n此式对于n >= 0, c原创 2009-10-18 13:40:00 · 1109 阅读 · 0 评论 -
排序算法分析
排序(Sorting)是算法应用中最重要的工具。据统计,计算机运行时间的四分之一都耗费在了排序上。判断排序算法优劣的方法是进行时间和空间效率分析。分析时间效率的三个重要记号是O、Ω和Θ。O记号起源于P.Bachmann在1892年发表的一篇数论文章。O在一个常数因子内给出某函数的一个上界。对一个函数g(n), O(g(n))表示一个函数集合。O(g(n)) = {f(n):存在正常数c和n0,使对原创 2009-09-22 21:37:00 · 1660 阅读 · 0 评论