与此相关的因素有:
依据算法选用何种策略;
问题的规模;
程序设计的语言;
编译程序所产生的机器代码的质量;
机器执行指令的速度;
数据的初试状态有关
撇开软硬件等有关部门因素,可以认为一个特定算法“运行工作量”的大小,只依赖
于问题的规模(通常用 n 表示),表示成是问题规模的函数。
3、时间复杂度
算法中基本操作重复执行的次数是问题规模 n 的某个函数,其时间量度记作
T(n)=O(f(n)),称作算法的渐近时间复杂度(Asymptotic Time plexity),简称时间复杂度。
一般地,常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来
表示。
定理:若 A(n)=a m n m +a m-1 n m-1 +…+a1n+a0 是一个 m 次多项式,
则 A(n)=O(n m)
表示时间复杂度的阶有:
O(1) :常量时间阶 O (n):线性时间阶
O(㏒ n) :对数时间阶 O(n ㏒ n) :线性对数时间阶
O (nk): k≥2 ,k 次方时间阶
其关系为: