请帮我比较两种算法的复杂性.
O(N+1000) + O(M*log(M))
O(N*5) + O(2000)
N = 100000 M = 100
我无法理解,我该怎么办O(...)
?我可以离开吗?只是做...
(N+1000) + (M*log(M)) = 101200 (N*5) + 2000 = 502000
这样对吗?
谢谢
更新
我有任务,我有两个可能的解决方案.第一个解决方案的算法复杂性O(N) + O(M log(M))
,请参阅http://code.google.com/p/redis/wiki/ZunionstoreCommand ; 第二个解决方案包括两个具有复杂性的算法O(N)
http://code.google.com/p/redis/wiki/SunionCommand和O(N*M)
http://code.google.com/p/redis/wiki/SinterCommand.我认为我可以用现实世界值替换N和M来比较两种解决方案的速度.
Big-O表示法并没有告诉您特定算法对特定数据集的速度有多快 - 它告诉您渐近性能.在Big-O表示法中,您可以忽略常量和常量系数:
O(N + M*log(M))
上)
现在您可以看到第二种算法具有更好的渐近性能.