Hi guys,
Please help me understand this.
The professor in my university says that.
O(logm+logn) = O(log(m+n))?
How is that?
Thanks
Printable View
Hi guys,
Please help me understand this.
The professor in my university says that.
O(logm+logn) = O(log(m+n))?
How is that?
Thanks
Because they are both logarithmic time.
gg
Thanks for the reply. But can you elaborate on that. I didnt understand.
You expected O(log(M)+log(N)) to be equivalent to O(log(M*N)) right?
It's true that log(M)+log(N) can be algebraically manipulated into log(M*N) but Big-O is not an algebra, it's a notation.
O(log(M)+log(N)) expresses that the algorithm reacts logarithmically to M as well as to N. Regardless of which you vary or both, the algorithm will respond logarithmically. So the overall complexity is logarithmic and this is also expressed by O(log(M+N)). When M and N varies the overall response is logarithmic.
Lets say that M and N varies together. Then you can replace M with N. In the first case you get
O(log(N) + log(N)) = O(2*logN) = O(logN)
And in the second case you have
O(log(N + N)) = O(log(2*N)) = O(log(N))
In Big-O both O(2*logN) and O(log(2*N)) expresses the same overall complexity, namely O(log(N)). You can multiply N with any constant, in Big-O notation it's still N. And you can multiply log(N) with any constant, it's still log(N).
So Big-O notation characterizes algorithms in terms of broad complexity classes. In this case it says, this algorithm responds logarithmically to input so it's O(log(N)). It doesn't bother with different shades of logaritmicality. Logarithmic is logarithmic is logarithmic.
>> But can you elaborate...
http://en.wikipedia.org/wiki/Big_O_notation
gg