我正在阅读CLRS的第2章和第3章,并经常陷入困境,特别是在每一章末尾提供的问题中,我不知道它是否曾经是值得付出这么多努力。我无法像在线一样了解解决方案:http://clrs.skanev.com/02/problems/01.html
我听说这本书是大学CS课程中最受欢迎的教科书之一,但是人们会跳过错综复杂的部分而只是记住重要的事情,比如插入排序这个增长顺序和合并排序有这样的增长顺序,继续吗?
仅仅熟悉许多有用的算法是否足以让人们对计算机科学的理解与CS学位的人一样多?
答案 0 :(得分:3)
理解并不是关于记忆。它是关于能够运用知识解决问题的。与大多数现实生活中的问题相比,教科书问题非常简单。因此,跳过这些只是意味着你根本就没有学习,而你当然也无法在现实生活中应用任何这些。你记忆,但你不能使用你记忆中的东西。
TL; DR:能够使用知识的证据是解决问题的能力,教科书问题很简单。‡一个人没有没有其他人。‡Knuth的文本是一个值得注意的例外:他还提供了一些棘手的棘手问题,以及介于两者之间的一切:)
答案 1 :(得分:0)
重点是"拥有CS学位的人......一般来说"可以计算算法增长的顺序。 那是为什么人们会努力学习这些东西。如果你只是想说" mergesort是O(n log n)",那么你需要的只是看到并记住这个事实。如果您希望能够计算算法的O(),即使它是之前从未见过的 - 那么你需要这些方法。