时间复杂度是指算法执行所需的时间与问题规模之间的关系。
如果一个算法的时间复杂度是O(n^2),那么执行该算法所需的时间将随着问题规模n的增加而呈平方级增长。
如果一个算法的时间复杂度是O(n),那么执行该算法所需的时间将随着问题规模n的增加而线性增加。
如果一个算法的时间复杂度是O(logn),logn表示以2为底n的对数,比如,当数据增大256倍时,耗时只增大8倍,256/2除尽的次数。
如果一个算法的时间复杂度是O(1),也就是耗时与输入数据大小无关,无论输入数据增大多少倍,耗时都不变。
对数是一种数学函数,用来描述一个数在另一个数的幂次方中的指数。
具体来说,如果我们有一个正数 b(称为“底数”)和一个正数 x(称为“真数”),
那么 b 的 y 次幂等于 x,即 b^y = x。这时,我们就可以用对数函数来表示 y,即 y = logb(x)。
这里的“log”表示对数,“b”表示底数,“x”表示真数,“y”表示指数。
log₂256=log₂(2^8)=8*(log₂2)=8*1=8 利用的是公式:log₂M^N=N*(log₂M)