算法的时间复杂度

时间频度

一个算法花费的时间与算法中语句执行的次数成正比,一个算法中语句执行的次数称为时间频度或语句频度

算法的时间复杂度_第1张图片

上图中,第一种计算方法的时间频度,第二种计算方法的时间频度

算法的时间复杂度_第2张图片
算法的时间复杂度_第3张图片
算法的时间复杂度_第4张图片

在计算算法时间频度的时候,常数项、低次项和最高次项的系数都是可以忽略的,如时间频度随着n值变大,他们的执行曲线是重合的,都可以记为

算法的时间复杂度_第5张图片

算法的时间复杂度

一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用表示,若有某个辅助函数,使得当n无限趋近无穷大的时候,的极限值为不等于零的常数,则称的同量级函数。记作,其中为算法的渐进时间复杂度,简称时间复杂度

T(n) 不同,但时间复杂度可能相同。 如:T(n)=n²+7n+6 与 T(n)=3n²+2n+2 它们的T(n) 不同,但时间复杂度相同,都为O(n²)。

算法的时间复杂度_第6张图片

常见的算法时间复杂度

常数阶 对数阶 线性阶 线性对数阶 平方阶

立方阶 k次方阶 指数阶

算法的时间复杂度_第7张图片
算法的时间复杂度_第8张图片
算法的时间复杂度_第9张图片
算法的时间复杂度_第10张图片
算法的时间复杂度_第11张图片
算法的时间复杂度_第12张图片

算法的时间复杂度一般讨论的是最坏的时间复杂度

算法的时间复杂度_第13张图片

算法的空间复杂度一般比时间复杂度要考虑得少一些

你可能感兴趣的:(算法)