摘要: 摘要:本文先从例子出发,讲解动态规划的一个实际例子,然后再导出动态规划的《运筹学》定义和一般解法。接着运用《运筹学》中的阶段、状态和状态转移方程三个关键词来分析例2的解法。紧接着又给出了《算法导论》中动态规划的定义和一般解法,并运用《算法导论》中的最优子结构、子问题重叠、自下而上三个关键词来分析例3.并比较了这两种做法的优劣。最后列举了几个例子,并给出了部分实现代码。适合初学者学习动态规划。 阅读全文
posted @ 2014-04-08 21:22 DreamTop 阅读(8739) 评论(0) 推荐(0) 编辑
摘要: 1. 基本思想 插入排序是对少量元素进行排序的有效算法。插入排序的过程很简单,将待排序的表List分成已排序和未排序的两个部分(如图1所示),将未排序中的元素依次插入已排序的表中。具体做法是取出未排序表中的一个元素,将之与已排序的表中元素依次进行比较,直至找到正确位置。则将该元素插入到该位置,重复这个步骤,直至未排序中元素全部插入已排序的表中。 (图1)2. 算法实现 这里使用模板来实现,以增强代码的实用性。 1 template 2 void insert_sort(T* a,int n) 3 { 4 for(int i=1;i=0)10 {11 ... 阅读全文
posted @ 2013-10-14 23:24 DreamTop 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1. 基本定义 模板是2. 分类 2.1 函数模板(1)作用: 函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。 (2)申明方法: template函数申明 (3)实例:#includeusing namespace std;template T Max( const T x, const T y);int main(){ int a=10; int b=11; cout T Max( const T x, const T y){ return (x>y?x:y);} 2.2 类模板 2.2.13. 注意问题1. 类模板定义的... 阅读全文
posted @ 2013-10-11 02:59 DreamTop 阅读(194) 评论(0) 推荐(0) 编辑
摘要: (1)break直接调出当前循环体。如果是嵌套循环,他只能调出一层循环体。Exp-1:程序:#includeusing namespace std;int main(){ for(int i=0;iusing namespace std;int main(){ for(int i=0;i<3;i++) { cout<<"the first circle"<<" "<<i<<endl; for(int j=0;j<3;j++) { if(j==1) continue; cou... 阅读全文
posted @ 2013-10-06 20:49 DreamTop 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 今天是一个值得纪念的日子。 从今天起,保研的工作已经接近尾声。 从今天起,自由的学习求知正式开始。 去了三次北京,感触颇深。也终于让我有时间静下来写点东西来反思,来留恋了。自己的基本功还不够扎实,需要加强算法方面的练习,整个十月份都要花在算法导论上。比较经典的算法不仅要弄懂其基本原理,还要知道为什么这么设计,他的精髓所在,最好要上网搜一搜看看别人的博客。并且注意做好学习笔记。我约定:1. 每种经典的算法必须实现,采用C++语言,VS2010平台。2. 每种经典的算法必须上网搜博客,看看别人对它的讨论,理解其精髓所在,并且有足够的理论推导和数学公式。3. 每种经典的算法都必须做好学习笔记,学会. 阅读全文
posted @ 2013-09-27 00:34 DreamTop 阅读(290) 评论(1) 推荐(0) 编辑