P, NP, NP-Hard, NPC问题

时间复杂度是设计程序时十分重要的一个指标
时间复杂度的优劣很大程度上决定了程序的运行时间长短
为了对各种问题进行研究,我们将问题的时间复杂度分为几类
分别为P类,NP类与其它

0.多项式时间复杂度

多项式时间复杂度是指这个算法的时间复杂度小于等于一个与数据规模有关的多项式
简单地说,就是形如 O ( n k   log ⁡ n p ) O(n^k~\log n^p) O(nk lognp)的时间复杂度
其中k为常数, n n n为数据规模

0.5.这篇文章的精髓

总的来说这篇文章讲的东西就是下面这张图:

(请忽略水印)
好了水访问量的目的已经达到了
这篇文章再看下去只会浪费您的时间

1.P类问题

定义

可以在多项式时间内解决的问题

例子

绝大多数的算法问题
比如
比较型数组排序—— O ( n log ⁡ n ) O(n\log n) O(nlogn)
A+B—— O ( 1 ) O(1) O(1)
最长公共子序列(暴力DP)—— O ( n 2 ) O(n^2) O(n2)
等等

2.NP类问题

定义

可以在多项式时间复杂度内验证结果正确性的问题

例子

所有的NP类问题
求图中的哈密顿路径
旅行商问题

与P类的关系

P类问题都是NP类问题
但是NP类问题是否等价于P类问题还真不好说
解决"P=NP"是否正确是千禧年七大难题之一——然而还没有人证明或证伪

3.NP-Hard问题

定义

所有NP问题都可以在多项式时间复杂度内转化到的问题,本身不一定是NP问题

这玩意儿我不是很理解
怎么能证明到所有的NP问题都可以转化呢???
但是只要记一下定义就可以了

4.NPC问题

定义

既是NP问题,又是NP-Hard问题的问题

与NP-Hard、NP的关系

NP-Hard和NP的交集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值