0

I'm reading the chapter 2 and 3 of 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

I heard that this book is one of the most popular text books for university CS class, but do people skip intricate parts and just memorize important things, like insertion sort has this order of growth and merge sort has that order of growth, and go ahead?

Isn't it just enough to be familiar with many useful algorithms to have about as much understanding of computer science as people with a degree in CS do in general?

Wai Ha Lee
  • 8,598
  • 83
  • 57
  • 92
stacko
  • 237
  • 1
  • 7

2 Answers2

3

Understanding isn't about memorization. It's about being able to apply the knowledge to solve problems. The textbook problems are quite simple compared to most real-life problems. So, skipping these simply means you're not learning at all, and you certainly won't be able to apply any of it in real life. You're memorizing, but you can't use what you've memorized.

TL;DR: The proof of being able to use the knowledge is the ability to solve problems, and textbook problems are simple. One doesn't go without the other.

‡ Knuth's texts are a notable exception: he also offers some borderline intractable problems, and everything in between :)

Kuba hasn't forgotten Monica
  • 95,931
  • 16
  • 151
  • 313
0

The point is that "people with a degree in CS ... in general" can work out the order of growth of an algorithm. That's why people go to the effort of learning this stuff. If you just want to be able to say "mergesort is O(n log n)", then indeed, all you need is to see and memorise that fact. If you want to be able to work out the O() of an algorithm, even when it's one you've never seen before - then you need these methods.

AakashM
  • 62,551
  • 17
  • 151
  • 186
  • Aren't most algorithms people make by themselves an application of any of those famous algorithms covered in those text books in some way? Are there a lot of algorithms people come up with which have totally original modules that you can't apply the knowledge like this is like merge sort so this would be theta(n log n)? – stacko Jan 07 '16 at 15:49
  • Off hand I'd guess that having the skillset to accurately map one's own problem X to textbook problem T is a close equivalent to having the skillset to analyse problem X from first principles oneself. – AakashM Jan 07 '16 at 16:30