Live data from Hacker News

Advanced Data Structures

courses.csail.mit.edu

81–90 of 148 posts

Re: Advanced Data Structures

#82
post #52

Earlier quoted context omitted.

I have read the first 50 pages about a 100 times. Does that count? P.S. I have never recommended it to anyone though, I don't recommend books I haven't read all the way through. I will get through TAOCP one day, (it's now on my retirement bucket list, along with learning Sanskrit) but I first need to read through a bunch of Math books forst, so I can get past the 50 page hump.

I wonder, what might be a suitable set of books to read before TAOCP? Might this one suffice: Concrete Mathematics: A Foundation for Computer Science (Knuth et.al.)

I think yes, but then I have not read TAOCP beyond the first chapter.

What I can say is that "Concrete Mathematics" is a terrific book. It is the best general "math for algorithms" book I have seen. Its exercises are wonderfully picked, with problems at all levels of difficulty and classified neatly into categories. It also discusses topics that for strange reasons are not as widely known as one would expect, even though they are extremely elegant and quite useful. A concrete example of this is the Euler-Maclaurin formula relating sums and integrals.

Re: Advanced Data Structures

#83
post #80

Earlier quoted context omitted.

Thanks for the shout-out! If you can't remember the long URL, http://algorithms.wtf also works. Please send me bug reports!

TIL there is a .wtf TLD.

There's also a .study TLD. And algorithms.study is available!

Re: Advanced Data Structures

#84
post #63
post #42

Earlier quoted context omitted.

As you get into advanced data structures, you often need the gory technical details to make correct decisions about tradeoffs and usage. Succinct data structures, for instance, which are a specific thing and not just a generic adjective, are almost miraculously powerful, but you'd better understand exactly what the preconditions for using them are (which is a fairly mathematical discussion) and what the tradeoffs are…

With that being said, would you agree that in general one does not need to be intimately familiar with these to be a productive, useful software engineer?

I'm often amazed at how far a key/value store and an array type can get you.

But when you need more, it's good to know your options.

In fact I'd say nobody can afford to be intimately familiar with all the various advanced data structures. But most people will, at most, just need to know the things they might need, then go learn about them when they need it, and many won't even need that much.

Re: Advanced Data Structures

#85

I never hear anybody mentioning him but Jeff Erickson's 'Algorithms' textbook [1] has some of the most lucid explanations I've come across. CLRS is often times impenetrable and for the times I didn't like its explanation of something I turned to Jeff Erickson's book and it hasn't failed me yet. I'd urge anybody trying to solidify algorithms and data structures to take a look at it. [1] http://jeffe.cs.illinois.edu/te…

I personally favor TAOCP much more than CLRS. TAOCP reads so much fun. The historical accounting is so appealing.

"Algorithm design manual" is another my favorite.

I never find CLRS appealing to read other than being used as a textbook in a formal class.

Re: Advanced Data Structures

#86

Earlier quoted context omitted.

No but I printed this PDF ( http://jeffe.cs.illinois.edu/teaching/algorithms/everything.... ). 1250 pages. Not sure about the legality of it.

Totally legal! (Just don't sell it for profit.)

Why don't you sell it for profit? ;-) Lulu or Kindle if you don't want to deal with editors.

Re: Advanced Data Structures

#87
This is a great resource for anybody that isn't formally trained in computer science. A lot of programmers use an abstract data type like a dictionary or hash table, but many of the self-taught and even some formally trained treat it like a magical black box that stores key-value entries very efficiently. What a hash table/dictionary gives it near O(1) properties is a good hashing function for the key, and having a good distribution of buckets for all the keys when collisions occur.

I think a lot of programmers have good understanding of many data structures. But I think hashes and dictionaries are still taken for granted. What they really need to think of hashes as many magical black boxes and the hashing function directs which key to go to which magical bucket. :)

Re: Advanced Data Structures

#88
I've been watching the lectures & recitations from 6.006 Introduction to Algorithms (Fall 2011) to brush up prior to an interview. Erik Demane, Srini Devadas & Victor Cossan (Recitations) have been an amazing resource.

I've learned so much and am really impressed with their depth of knowledge and how they are able to convey complex ideas in a very easy to understand way, I can't wait to start the next courses.

Re: Advanced Data Structures

#89

I never hear anybody mentioning him but Jeff Erickson's 'Algorithms' textbook [1] has some of the most lucid explanations I've come across. CLRS is often times impenetrable and for the times I didn't like its explanation of something I turned to Jeff Erickson's book and it hasn't failed me yet. I'd urge anybody trying to solidify algorithms and data structures to take a look at it. [1] http://jeffe.cs.illinois.edu/te…

Jeff is also a great professor. If you ever get the chance to take a course with him, do it. You won't regret it. I had him for both 173 and 373 back in the day, and credit his teaching style for the immense amount of material I picked up.

Also, this: http://jeffe.cs.illinois.edu/teaching/pikachu.html

Re: Advanced Data Structures

#90

why are these hand drawn diagrams easier for me to understand and remember?

Stylised fonts are harder to read but make content easier to remember, it's not a huge leap to assume drawn diagrams like these are similar. Comic Sans is good for you.

https://faculty.washington.edu/chudler/font.html

Post reply on HN