
算法
jxhaha
不停的搬砖
展开
-
C++ 算法系列之动态规划
动态规划,是为了避免递归中出现重复计算的一种策略。核心思想是自底向上的解决问题。因此解决这类问题的关键是,从n=1开始解决,递推到n=N,求得最终值 基本操作分为三步 1. 寻找最优子结构 2. 列出递归方程,自底向上的对每个新产生的子问题仅解一次并将解保存在一个表格,需要时在表中查找. 3. 根据计算出的最优解的值构造相应的最优解example 1有一个高度为10级台阶的楼梯,从下往上走原创 2017-12-09 20:43:55 · 1316 阅读 · 0 评论 -
C++ 算法系列之贪婪算法
贪婪算法的本质活动选择问题。假设有n个活动,这些活动有起止时间,这些活动都要使用同一个如教室这样的资源。每次只能有一个活动使用该资源。我们定义两个活动起止时间不相交,则称这两个活动是相容的。求一个最大相容活动。 这个问题如果用暴力解法,则对于n个活动,复杂度为2的n次方. 我们采取的策略是始终选取结束时间最早的活动作为我们的解集合成员。这个策略就是贪婪选择的结果。 那么解释一下,为什么选择结束原创 2017-12-09 22:58:29 · 6132 阅读 · 6 评论 -
C++算法系列之排序
插入排序#include<iostream>#include<algorithm>#include<random>#include<ctime>#include<vector>#include<iterator>const int M = 1000;const int N = 1000;template<typename Iterator, typename Comparator>原创 2017-11-30 17:08:41 · 291 阅读 · 0 评论