算法复杂性

一、算法

  • 算法是指解决问题的一种方法或一个过程,更严格的说,算法由若干条指令组成的有穷数列。
  • 程序是算法用某种程序设计语言的具体实现。

二、算法复杂性

  • 算法复杂性是算法运行时所需要的计算机资源的量。
  • 算法复杂性分为时间复杂性和空间复杂性(目标:设计出复杂度尽可能低的算法)。

    2.1 空间复杂性

        算法运行时需要空间资源的量

    2.2时间复杂性

        算法运行时需要时间资源的量

        算法时间复杂性分析只要考察当问题规模充分大时,算法复杂性在渐进意义下的阶。渐进意义下的记号如下所示: 


        以下设f(N)和g(N)是定义在正数集上的正函数(N为算法要解问题的规模)


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


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


        3.定义,当且仅当,这时我们说f(N)与g(N)同阶。


        4.对于任意给定的,都存在正整数使得当时有,则称函数f(N)当N充分大时的阶比g(N)低,记为




   

猜你喜欢

转载自blog.csdn.net/xdguangguang/article/details/78308637