算法有四种特性:
(1)输入
(2)输出
(3)确定性
(4)有限性:每条指令的执行次数是有限的,执行时间也是有限的
算法的复杂性:
算法的复杂性分为时间复杂性和空间复杂性。
C=F(N,I,A) C:算法复杂度 N:待解决问题的规模 A:算法的本身
算法的复杂性一般有最坏情况、最好情况和平均情况。其中最坏情况下的复杂度的可操作性最好并且最具有实际价值。
复杂性渐进性态:
T(N)表示算法A的复杂性函数。一般来说,当N 单调递增趋于∞时,T(N)也将单调趋于∞。假设对于T(N),存在一个T*(N),当N→∞时,
(T(N)-T*(N))/T(N)→0,那么T*(N)就是T(N)在N→∞时的渐进性态,也就是算法A在N→∞时的渐进复杂性,是T(N)的渐进表达式。
在直观上,T*(N)是T(N)除去低阶项而留下的主项。
假设f(N)和g(N)是定义在正数集上的正函数。
如果存在存在正的常数C和自然数N0,使得当N>=N0时有f(N)<=Cg(N),则称函数f(N)当N充分大时有上界,
且g(N)是它的一个上界,记为f(N)=O(g(N))。
变换公式: