0

我正在阅读CLRS的第 2 章和第 3 章,并且经常被卡住,尤其是在每章末尾提供的问题中,我想知道是否值得付出这么多的努力。我无法理解这样的在线解决方案:http: //clrs.skanev.com/02/problems/01.html

我听说这本书是大学 CS 课上最受欢迎的教科书之一,但是人们会跳过复杂的部分而只记住重要的东西吗,比如插入排序有这种增长顺序,合并排序有这种增长顺序,然后继续?

仅仅熟悉许多有用的算法就足以像拥有 CS 学位的人一般对计算机科学有同样多的了解吗?

4

2 回答 2

3

理解与记忆无关。这是关于能够应用知识来解决问题。与大多数现实生活中的问题相比,教科书的问题非常简单。所以,跳过这些仅仅意味着你根本没有学习,而且你肯定无法在现实生活中应用它。你在记忆,但你不能使用你已经记住的东西。

TL;DR:能够使用知识的证明是解决问题的能力,而教科书的问题很简单‡</sup> 一个离不开另一个。

‡ Knuth 的文本是一个值得注意的例外:他还提供了一些难以解决的边缘问题,以及介于两者之间的所有内容:)

于 2016-01-07T15:00:03.343 回答
0

关键是“具有CS学位的人......一般”可以计算算法的增长顺序。这就是为什么人们努力学习这些东西的原因。如果你只想“合并排序是 O(n log n)”,那么事实上,你所需要的只是看到并记住这个事实。如果您希望能够计算算法的 O(),即使它是您以前从未见过的- 那么您需要这些方法。

于 2016-01-07T15:19:13.587 回答