贪心算法可解决的问题通常大部分都有如下的特性:
1、有一个以最优方式来解决的问题。为了构造问题的解决方案,有一个候选的对象的集合:比如不同面值的硬币。
2、随着算法的进行,将积累起其他两个集合:一个包含已经被考虑过并被选出的候选对象,另一个包含已经被考虑过但被丢弃的候选对象。
3、有一个函数来检查一个候选对象的集合是否提供了问题的解答。该函数不考虑此时的解决方法是否最优。
4、还有一个函数检查是否一个候选对象的集合是可行的,即是否可能往该集合上添加更多的候选对象以获得一个解。和上一个函数一样,此时不考虑解决方法的最优性。
5、选择函数可以指出哪一个剩余的候选对象最有希望构成问题的解。
6、最后,目标函数给出解的值。
03-04
704
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-10
472
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)