【发布时间】:2008-09-15 13:10:34
【问题描述】:
作为一名自学成才的计算机程序员,我经常无法估计特定操作的 O() 值。是的,我知道大多数重要的,比如主要的分类和搜索,但是当新的东西出现时,我不知道如何计算一个,除非它非常明显。是否有一个很好的网站或文字来解释如何做到这一点?哎呀,我什至不知道计算机科学家怎么称呼它,所以我无法谷歌它。
【问题讨论】:
标签: computer-science
作为一名自学成才的计算机程序员,我经常无法估计特定操作的 O() 值。是的,我知道大多数重要的,比如主要的分类和搜索,但是当新的东西出现时,我不知道如何计算一个,除非它非常明显。是否有一个很好的网站或文字来解释如何做到这一点?哎呀,我什至不知道计算机科学家怎么称呼它,所以我无法谷歌它。
【问题讨论】:
标签: computer-science
叫Big O Notation,用在Computational Complexity Theory中。
维基百科文章是一个很好的起点,页面底部的参考书目也是如此。
【讨论】:
Introduction to Algorithms 是大多数大学使用的标准文本。我用过它,可以推荐那些关于订单分析的章节。不过,我会从 Tim Howland 的回答中的文章开始。
【讨论】:
如果你真的想学习这个主题,那么你可能需要一本标准的理论/算法教科书。我不知道有哪个网站可以真正教您进行复杂性分析(“复杂性”或“时间复杂性”是您如何称呼这些 O() 值;您可能还想在谷歌上搜索“算法分析”或“介绍算法”等)。
但在此之前 - 一个免费选项。麻省理工学院的 Erik Demaine 和 Charles Leiserson 提供的课程中的幻灯片是免费的,而且看起来很棒。我肯定会尝试阅读它们,看看是否适合你。他们是here。
现在,教科书:
教科书的经典选择是 Cormen 等人的书 Introduction to Algorithms(可能有便宜的版本可以购买 here,我记得在网上看到过免费(可能是非法的)版本,但我不记得在哪里)。
Kleinberg 和 Tardos 的Algorithm Design 是一本更新的、现代风格的书,IMO 读起来更有趣,也是更好的选择。
这里有一些提供信息的网站(我是通过谷歌搜索“算法分析讲义”而不带引号得到的):
以上内容由计算机科学理论家撰写。所以程序员或其他实际的人可能会有一些不同的看法。
【讨论】:
它被称为算法分析,本身就是一门科学。看一些书here
【讨论】:
您的链接将我带到一个网站 俄罗斯人似乎想要一个用户 ID 和密码。合法错误,或 巨魔?保罗·汤布林
该网站使用保加利亚语,您不需要密码即可访问我链接的文件列表并下载其中一些文件。当然,除非保加利亚以外的 IP 有访问限制,我真的不知道。
抱歉,我不知道如何发表评论。
【讨论】: