O(log n)到底是什么意思?
我正在了解Big O Notation运行时间和摊销时间。我理解O(n)线性时间的概念,这意味着输入的大小会成比例地影响算法的增长...例如,二次时间O(n 2)等也是如此。 ,例如乘数为O(n!)的排列生成器,并通过阶乘增长。 例如,以下函数为O(n),因为该算法与输入n成正比增长: f(int n) { int i; for (i = 0; i < n; ++i) printf("%d", i); } 同样,如果存在嵌套循环,则时间将为O(n 2)。 但是O(log n)到底是什么?例如,说一个完整的二叉树的高度为O(log n)是什么意思? 我确实知道(也许不是很详细)什么是对数,即:log 10 100 = 2,但是我不明白如何用对数时间来识别一个函数。