当前位置:  开发笔记 > 编程语言 > 正文

比较算法的复杂性

如何解决《比较算法的复杂性》经验,为你挑选了1个好方法。

请帮我比较两种算法的复杂性.

    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来比较两种解决方案的速度.



1> Mark Byers..:

Big-O表示法并没有告诉您特定算法对特定数据集的速度有多快 - 它告诉您渐近性能.在Big-O表示法中,您可以忽略常量和常量系数:

    O(N + M*log(M))

    上)

现在您可以看到第二种算法具有更好的渐近性能.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有