时间复杂度O(logN)

arrowcy05-25 16:28

等级 Bbs614楼

谢谢大家,书上的原文应该是:

T=K*log2(N) 注:2是小2
时间T与以2为底的对数成正比。实际上,由于所有的对数都和其他对数成比例(从底数为2转换到底数为10需乘以3.322),我们可以将这个为常数的底数也并入K.由此不必指定底数:
T = K*log(N)

这是《数据结构》第一章里的一段话,底数到底应该是几呢?

======================================================================
既然这里都说了不必指定底数,意思就是说任一指定一个底数的话,效果都是一样的,就不必去计较这个了。
如果看到那个地方说某个算法复杂度是O(logN)的话,那可能直接根据那个算法计算出来的基本操作次数是log2(N),也可能是log3(N)甚至还可能是2*log2(N*3)等等,反正这个时候你知道底数也没有什么用,因为你不知道常数项。只不过,计算机中的很多算法如果是O(logN)的复杂度的话,其基本操作的次数都是C1*log2(C2*N),但是这并不是说见到logN就一定是log2N

LintCode 14二分查找

猜你喜欢

转载自blog.csdn.net/weixin_41632560/article/details/84967932