算法图解之贪婪算法

案例

(1)教室调度问题
(2)背包问题(装东西)
(3)集合覆盖问题(代码实现)
(4)NP完全问题(多项式复杂程度的非确定性问题,是世界七大数学难题之一)
那么如何判断问题是不是NP问题:(没有办法,下面提供有效分析)

元素较少时算法的运行速度非常快,但随着元素数量的增加,速度会变得非常慢。
涉及“所有组合”的问题通常是NP完全问题。
不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP完全问题。
如果问题涉及序列(如旅行商问题中的城市序列)且难以解决,它可能就是NP完全问题
如果问题涉及集合(如广播台集合)且难以解决,它可能就是NP完全问题。
如果问题可转换为集合覆盖问题或旅行商问题,那它肯定是NP完全问题。

实现

针对上面的集合覆盖问题(具体的问题可参考算法图解)进行的代码实现:

-----------------------本文结束感谢您的阅读-----------------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%