在O(log n)中,省略哪个基数“ 2”或“ 10”? log n的时间复杂度基于对序列的划分,因此应该为2。通常,log中以10为基。
答案 0 :(得分:1)
此表示法表示算法的运行时间相对于N的大小如何增长。它所指的基础没有区别。就像它的O(n)或O(k * n)一样(k为实常数)一样。
澄清:
任何给定基数X中的日志可以编写如下:
log x (n)= log 10 (n) ⁄ log 10 (x )
让k = log 10 (x),所以我们有:
log x (n)=(1 ⁄ k)×log 10 (n)
这也是复杂度log(n)的函数
我建议更容易地将此属性可视化是认为将一个函数乘以一个常数会使它的图形垂直拉伸(或缩小),而这不会改变曲线本身的形状。形状就是这种符号的含义。
摘自Wikipedia:
Similarly, logs with different constant bases are equivalent.