一、算法
- 算法是指解决问题的一种方法或一个过程,更严格的说,算法由若干条指令组成的有穷数列。
- 程序是算法用某种程序设计语言的具体实现。
二、算法复杂性
- 算法复杂性是算法运行时所需要的计算机资源的量。
- 算法复杂性分为时间复杂性和空间复杂性(目标:设计出复杂度尽可能低的算法)。
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)同阶。
扫描二维码关注公众号,回复:
473632 查看本文章
4.对于任意给定的,都存在正整数使得当时有,则称函数f(N)当N充分大时的阶比g(N)低,记为