计算机算法设计与分析第一章总结

1.1算法与程序

  算法的性质:输入、输出、确定性、有限性

  程序是算法用某种程序设计语言的具体实现,可以不满足算法的有限性

1.2算法复杂性分析

  算法复杂性是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。

  一般只讨论时间复杂性。

  实践表明,可操作性性最好的是最坏情况下的时间复杂性。

  分析时间复杂性时可以将复杂性函数简化为渐进复杂性,比较两个算法的渐进复杂性的即可确定哪个算法的效率高。

  上界(O):如果存在正的常数C和自然数N0 ,使得当N >= N0时有f(N) <= Cg(N),则称函数f(N)当N充分大时上有界,且g(n)是它的一个上界,记为f(N) = Og(N)。这时还说f(N)的阶不高于g(N)的阶。

  下界(Ω)如果存在正的常数C和自然数N0 ,使得当N >= N0时有f(N) >= Cg(N),则称函数f(N)当N充分大时下有界,且g(n)是它的一个下界,记为f(N) = Ωg(N)。这时还说f(N)的阶不低于g(N)的阶。

  定义f(N) = θ(g,(N))当且仅当f(N) = O(g(N))且f(N) = Ω(g(N))是,称为f(N)与g(N)同阶。

  如果对于任意给定的ε>0,都存在正整数N0,使得当N >= N0时有f(N) / g(N) < ε,则称函数f(N)当N充分大时的阶比g(N)低,记为f(N) = o(g(N))。

1.3NP完全性理论

  1.P类问题:存在多项式时间算法的问题。

  2.NP问题:能在多项式时间内验证得出一个正确解的问题。

  3.NPC类问题:存在这样一个NP问题,所有的NP问题都可以约化成它。

  4.NP-Hard问题:NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是它不一定是一个NP问题。

  PNP 并且 NPC NP  NP-hard

posted @ 2022-09-04 23:23  幽雨镜心  阅读(283)  评论(0)    收藏  举报