贪心算法知识(一)

网友投稿 256 2022-08-27

贪心算法知识(一)

我个人认为,贪心不是一个具体的方法,而是一类方法,贪心算法的关键不在于想到,而在于正确性的证明。要证明一个贪心算法是正确的,需要证明我们可以把一个最优解逐步转化为我们用贪心算法所得到的解,而解不会更差,从而证明贪心算法得到的解和最优解是一样好的(显然,最优解不可能更好)。而要证明一个贪心算法是错误的,只需要找到一个反例就可以了。

通常情况下,证明贪心算法是正确的或者找到贪心算法的一个反例都不那么容易。

而且即使对于同一个问题,从不同角度的贪心算法的正确性也不尽相同。例如Dijkstra算法是著名的求单源图最短路径的贪心算法。

如果我们也给出一个贪心算法,从源头开始每次选择最短的边继续走,直到走到,直到经过全部点或者无路可走。按照我们的算法,在上图中,A到C的最短路是A-B-C,它的长度是5,显然A-D-C才是真正的最短路。我们的贪心算法是错的。

所以一般对于一个问题来说,我们只讲这样一个贪心算法是错误的,而不说这个问题不能采用贪心算法——因为可能从别的角度设计出的贪心算法是正确。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:营销“造节”贯穿全年,线上效果明显提升!(电商造节营销)
下一篇:HDU 1028 Ignatius and the Princess III(母函数或dp)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~