P问题、NP问题、NPC问题和NPH问题

本文介绍了算法领域的四个重要概念:P问题、NP问题、NPC问题和NPH问题。P问题指的是能在多项式时间内解决的问题,如排序算法。NP问题包括P问题,能在多项式时间内验证解的问题,但不保证找到解。NPC问题,若其有多项式时间解,则所有NP问题皆可多项式解决。NPH问题则为所有NP问题的难解代表,可能不属于NP类。
摘要由CSDN通过智能技术生成

P问题

       理解P问题需要了解的知识:多项式、时间复杂度。

       多项式:ax^n-bx^n-1+c,就是在数学上经常见到的式子。

       时间复杂度:指执行算法所需要的计算工作量,它定性描述该算法的运行时间。时间复杂度常用大O表述,例如O(n^2),代表其时间复杂度为n^2。

       P问题:存在多项式时间算法的问题。(P:polynominal,多项式)。通俗来讲,如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。例如,给定一个数组需要排序,可以使用排序算法,常用的排序算法有快速排序,冒泡排序。其中快排的时间复杂度为O(log(n),冒泡排序的时间复杂度为O(n^2)。

NP问题

NP问题:能在多项式时间内验证得出一个正确解的问题。(NP:Nondeterministic polynominal,非确定性多项式)。

比如Hamilton回路和TSP问题,对于这种问题,你要算出所有可能的话,只能使用穷举法。但是这种O(a^n)和O(n!)型复杂度,它是非多项式级的,其复杂度计算机往往不能承受。

NP问题是包含P问题的。也就是说,能多项式地解决一个问题,必然能多项式地验证一个问题的解。很显然,所有的P类问题都是NP问题。但是不能说NP=P

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值