4

作为一名自学成才的计算机程序员,我经常无法估计特定操作的 O() 值。是的,我知道大多数重要的,比如主要的分类和搜索,但是当新的东西出现时,我不知道如何计算一个,除非它非常明显。是否有一个很好的网站或文字来解释如何做到这一点?哎呀,我什至不知道计算机科学家怎么称呼它,所以我无法谷歌它。

4

5 回答 5

6

它被称为Big O Notation,用于计算复杂性理论

维基百科文章是一个很好的起点,页面底部的参考书目也是如此。

于 2008-09-15T13:14:06.250 回答
4

算法简介是大多数大学使用的标准文本。我已经使用它并且可以推荐那些关于订单分析的章节。不过,我将从 Tim Howland 的回答中的文章开始。

于 2008-09-15T13:14:45.657 回答
2

如果你真的想学习这个主题,那么你可能需要一本标准的理论/算法教科书。我不知道有哪个网站可以真正教你复杂性分析(“复杂性”或“时间复杂性”是你如何称呼这些 O() 值;你可能还想在谷歌上搜索“算法分析”或“介绍算法”等)。

但在那之前——一个免费的选择。麻省理工学院的 Erik Demaine 和 Charles Leiserson 提供的课程中的幻灯片是免费的,而且看起来很棒。我肯定会尝试阅读它们,看看是否适合你。他们在这里

现在,教科书:

教科书的经典选择是 Cormen 等人的著作Introduction to Algorithms (这里可能有便宜的版本可以买到,我记得在网上看到过免费(可能是非法的)版本,但我不记得在哪里)。

Kleinberg and Tardos' Algorithm Design是 IMO 读起来更有趣和更好的选择,更近现代风格的书。

以下是一些提供信息的网站(我通过谷歌搜索“算法分析讲义”而不带引号得到这些信息):

以上是由计算机科学理论家撰写的。所以程序员或其他实际的人可能会有一些不同的看法。

于 2008-09-15T13:31:19.160 回答
1

它被称为算法分析,本身就是一门科学。看看这里的一些书

于 2008-09-15T13:16:12.830 回答
0

您的链接将我带到一个 似乎需要用户名 和密码的俄语网站。合法的错误,还是 巨魔?保罗·汤布林

该网站是保加利亚语的,您不需要密码即可访问我链接到的文件列表并下载其中一些文件。当然,除非对保加利亚以外的 IP 有访问限制,我真的不知道。

对不起,我不知道如何发表评论。

于 2008-09-16T09:24:09.260 回答