什么时候能够计算增长顺序很重要?

When would it be important to be able to calculate order of growth?

我正在阅读 CLRS, and get stuck so often, especially in the problems provided at the end of each chapter, that I wonder if it'll ever be worthwhile for this much effort. I can't understand the solution online like this one: http://clrs.skanev.com/02/problems/01.html

的第 2 章和第 3 章

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

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

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

TL;DR: 能够运用知识的证明就是解决问题的能力,教科书上的问题很简单. 缺一不可。

‡ Knuth 的文章是一个明显的例外:他还提供了一些边缘棘手的问题,以及介于两者之间的所有问题:)

重点是"people with a degree in CS ... in general"可以算出一个算法的增长阶数。 这就是人们努力学习这些东西的原因。如果你只是想 "mergesort is O(n log n)",那么确实,你所需要的只是看到并记住这个事实。如果您希望能够计算出 算法的 O(),即使它是您以前从未见过的算法 - 那么您需要这些方法。