- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 贪心算法基础(一)——数列极差
贪心算法的思想就是用局部的最优解,达到最后全局的最优解。贪心算法使用是有限制的,一个问题能不能使用贪心来做,往往我们要对其进行必要的证明。贪心算法策略具有无后向性,也就是当前阶段的状态确定之后,不受后面阶段状态的影响。现在我们先将一个能使用贪心算法的问题——数列极差。问题描述:在黑板上写了N个正整数作成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1
2015-05-27 16:46:34 6393
原创 C++函数模板
今天和大家分享的是函数模板。模板是泛型编程的基础,学好模板对将来学习STL很有帮助。首先,我们来看函数模板的定义,怎么样定义一个函数模板:template 返回值类型 函数名(函数参数)其中template是关键字,必须要写的尖括号里面的是模板参数,关键字是typename或者是class。例如template T compare(const T &a,const T &b)//
2015-05-21 17:25:20 463
原创 贪心算法基础(二)
今天我们还是讲贪心算法。题目是:将一个真分数表示成若干个埃及分数的和。啥是埃及分数?例如:1/2这就是埃及分数,也就是分子为1的分数。例如:7/8=1/2+1/3+1/24。那么怎么实现这个呢?因为是加法运算,所以我们通过一项项的“拆项”来实现。1.找出最大的埃及分数,使得f>1/n。2.输出1/n.3.f=f-1/n.4.如果f是埃及分数则完成,否则继续第一步.但是先
2015-05-28 23:21:54 675
原创 分治法——非等分分治
上一篇我们讲了分治法最基本的形式——二分法,现在我们讲一讲非等分分治的情况。非等分分治顾名思义就是在分的时候,子问题的规模不是相等的,也就是分点不在中心位置。非等分分治的一个应用就是快速排序算法。现在我们看一个基于快拍算法的例子——求第k小的数。如果我们使用二分法来解决这个问题。首先将问题一分为二,化成两个同等规模的子问题。从这两个自问题中递归求解,但是,这样做会很麻烦。因此,我们采取
2015-05-17 19:08:00 1113
原创 分治法
分治法的主要思想就是,将一个规模为N的问题,将他分解为多个规模小于N的子问题,逐个的解决这些子问题,然后将这些子问题的解合并起来,构成原问题的解。分治法的步骤:1.分:将原问题分解为多个子问题,这些子问题是可以独立求解的子问题,并且分解得到的解和原问题的解有着相同的结构,便于使用递归和循环机制。2.解:求解这些子问题的解3.治:将子问题的解合并起来形成原问题的解。类型1
2015-05-16 19:36:56 1092
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人