时间复杂度介绍

  • O(n)\Omega (n),\Theta(n)的区别

O(n)表示时间复杂度的上界,\Omega (n)表示时间复杂度的下界,\Theta(n)介于两者之间,具体可以由下图所示:

参考:https://www2.cs.arizona.edu/classes/cs345/summer14/files/bigO.pdf

  •  P, NP, NP-complete, NP-hard的关系

P: 能在多项式时间内解决的问题

NP: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题

NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决。

NP hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(不一定是NP问题)。

也就是说P属于NP,NPC属于NP,那么P=NP问题就是证明对于一个NPC可以找到一个多项式复杂度的算法求解;很可惜目前还未能找到这种解。(一旦找到了这种解,那么根据规约性,就可以证明出P=NP)。关系如下图所示:

常见的NPC问题举例:
布尔可满足性问题(SAT)
对于一个确定的逻辑电路,是否存在一种输入使得输出为真。是第一个被证明的NPC问题,直观的看出这应该是一个NPC问题,因为当电路有k个输入,就会有2k种情况的不同取值。这个问题可以在多项式时间上枚举验证。但如果要求解的话,直观上算法时间复杂度应该为指数级别,但是并不能确定是否存在多项式级别的解。

NPC问题清单:https://en.wikipedia.org/wiki/List_of_NP-complete_problems

参考:http://www.matrix67.com/blog/archives/105

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值