第5章贪心算法范例.ppt

Visual FoxPro 找硬币问题 假设有四种硬币,它们的面值分别为二角五分、一角、五分和一分。现在要找给某个顾客六角三分钱。这时,我们会不假思索地拿出2个二角五分的硬币,1个一角的硬币和3个一分的硬币交给顾客。这种找硬币方法与其他的找法相比,拿出的硬币个数是最少的。这里,使用了这样的找硬币方法:首先选出一个面值不超过六角三分的最大硬币,即二角五分;然后从六角三分中减去二角五分,剩下三角八分;再选出不超过三角八分的最大硬币,即又一个二角五分,如此一直做下去。这个找硬币的方法实际上就是贪心算法。 如果M是一个N×M的矩阵的话,即: 若M是无向图G的矩阵胚的话,则S为图的边集,I是所有构成森林的一组边的子集。 如果对S的每一个元素X(X∈S)赋予一个正的权值W(X),则称矩阵胚M=(S,I)为一个加权矩阵胚。 适宜于用贪心算法来求解的许多问题都可以归结为在加权矩阵胚中找一个具有最大权值的独立子集的问题,即给定一个加权矩阵胚,M=(S,I),若能找出一个独立且具有最大可能权值的子集A,且A不被M中比它更大的独立子集所包含,那么A为最优子集,也是一个最大的独立子集。 矩阵胚理论对于我们判断贪心算法是否适用于某一复杂问题是十分有效的。 对给定的n位高精度正整数,去掉其中k(kn)个数字后,按原左右次序将组成一个新的正整数,使得剩下的数字组成的新数最大。 操作对象

文档评论(0)

1亿VIP精品文档

相关文档