数据结构与算法 时间复杂度
我是锅巴
时间复杂度是对算法在执行时花费时间长短的一个量度
时间复杂度并不是通过时间来衡量,因为机器不同。时间复杂度是一个数学表达式。
时间复杂度取决于算法的基本操作的执行次数。
计算方式如图所示:
在实际应用中只需要估算,具体方法如下:
例1:
答案为O(N)。 O即代表为估算结果。
++k、++count并不算作次数,计算的对象为循环执行的次数。
一般情况下用N来表示次数,但也可以用其他未知数。
例2:
答案为O(M+N)。
例3:
答案为O(1)。
代表意义为算法需要运行常数次。
有的算法如查找算法无法确定固定的时间复杂度。
当一个算法随着输入内容不同,时间复杂度也不同,我们选取预期最坏的时间复杂度。
当求解较为复杂的算法的时间复杂度时,不能通过代码来分析,要通过原理来分析。
空间复杂度是对算法在执行时需要额外占用内存大小的一个量度。
计算规则基本与空间复杂度一致,O渐进。
