1.时间复杂度的基本概念
时间复杂度是为了估量算法运行时间而引进的概念,时间复杂度的基本与“执行次数”挂钩。
常用O(n)代表n次执行次数,又称“大O计数法”。
2.时间复杂度的计算
示例:
int main(void)
{
printf("一键三连\n") #执行1次#
return 0; #执行1次#
}
共执行2次;
int main()
{
int n;
for(int i=0;i<n;i++) #int i=0执行1次;i<n执行n+1次;i++执行n次#
{
printf("%d\n",i); #执行n次#
}
return 0; #执行1次#
}
共执行3n+3次;
二者分别执行2次与3n+3次,表示为T(n)=2,T(n)=3n+3,但是将执行次数转化为大O计数法时,常数可以简略;
时间复杂度最终分别为1,n;
若有三个算法,其总执行次数如下:
T(n)=9999;
T(n)=2n+1
T(n)=n^3+n^2+2n; (若有多个次方,保留最大的次方数)
则时间复杂度可分别表示为1,n,n^3。
以上是对于时间复杂度的粗浅理解,若有不当之处请多多指正。