Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and database system implementation. Studying algorithms can make you a better programmer, a clearer thinker, and a master of technical interviews. Algorithms Illuminated is an accessible introduction to the subject---a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons. The exposition is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. Part 1 of the book series covers asymptotic analysis and big-O notation, divide-and-conquer algorithms and the master method, randomized algorithms, and several famous algorithms for sorting and selection.
This book is almost verbatim the transcripts of the lectures from the Coursera course "Divide and Conquer, Sorting and Searching, and Randomized Algorithms" of the Algorithms Specialization, sections I-VIII. That's not necessarily a bad thing, but just something to keep in mind.
On its own I'd say the book is a good textbook, but its real purpose is to be supplementary material to the Coursera lectures. The biggest caveat is that this book leaves out section IX Graphs and the Contraction Algorithm, for those details you'll need Part 2. To be fair to the author, it fits better in with the second book as it's all about graphs, but leaves out details that are helpful with the final programming assignment of the first course.
In Summary: If you want to learn Algorithms on your own, this isn't for you. If you are taking the Coursera Algorithms Specialization and find it easier to read than listen, this is a good book to get.
Also, once Roughgarden published his book he removed the suggested readings from the other Algo text books, which... I find a bit annoying. The weeks below don't line up to what you see on Coursera as originally the courses were two six-week courses as opposed to four four-week courses. Here are the other textbooks readings:
CLRS - Cormen, Leiserson, Rivest, and Stein, Introdution to Algorithms (3rd edition) DPV - Dasgupta, Papadimitriou, and Vazirani, Algorithms KT - Kleinberg and Tardos, Algorithm Design SW - Sedgewick and Wayne, Algorithms (4th edition)
Like a big brother of "Algorithms Unlocked". Text is an almost direct transcript of video lectures which positively contributed to the flow of chapters. Felt like a perfect balance of rigor and verbal enunciation. Didn't think it could topple "Algorithms Unlocked" in narrative flow but boy it did!
One of those books that neatly combine mathematics and computers. Good beginning to understand basics of analyzing algorithms. And of course some magic how some pretty simple solutions achieve blazingly fast running time. I like that book has supplementary materials which help to dig more deeply into subject. Also it has practical challenges (like coding) which is essential understanding what is really going on in certain algorithm.
I won a free copy of this book from ŷ First Reads.
This book isn't bad, but it is not accessible at least at the level the blurb lead me to expect. It is well structured building knowledge, but it has a heavy dose of theory and math. I regularly code in several languages and have taken actual classes and built some of these algorithms. I still struggled to follow some of this text. Plus book is formatted in Latex which is annoying to read.
The fact that there is no answer key anywhere, even if you signed up to the forum for the promised solutions will leave you a jumbled order of semi introduced solutions, makes this book a bit hard to use for self study.
On the plus side, the author put the corresponding lecture videos online (in Coursera and in Youtube), which makes things so much simpler to follow. It is hard not to get influenced by the obvious enthusiasm the professor has for the content.
The content does not include that many handwaves, and most of the points introduced are also justified mathematically. That being said, this justification had a clear structure and sometimes visualization, which makes things really simple to follow. There are not that many things to memorize, if you can grasp the underlying proofs, that is.
Learned a lot. Right now, I don't have that many avenues to use the knowledge I gained from here, except maybe for Leetcode, but I am looking forward to flex my brain as a challenge, which everything in life is, to a degree.
Tim Roughgarden made a good job at keeping things simple on explaining the different algorithms handled in this book. However, the key behind them, the thing that allow them to outperform the classical or natural approach is not that easy. In this book you will find a lot of food for thought and also some mathematical expressions and proof that can seem a bit intimidating. Nonethles, even I couldn't get my head around some of them, the key message is quite clear. When you write an algorithm, you probably can do better. I am no longer writing pieces of code without thinking about performance and optimization. Surely not allways it will be worth it to invest the time in such optimizations when performance is not critical or the data to be handled is not that big. However, this thought will be at least considered. It was not an easy book to read, but definitely worth it. I will let the knowledge sink a bit on my brain and sooner than later I will go for the next one.
The Algorithms Illuminated series is a companion to Tim Roughgarden's series of algorithms classes on Coursera. The books contain expanded transcripts of the lectures. I found book one extremely helpful as a reference both for the class and other classes, as it contains good pseudocode and explanations of many canonical divide and conquer algorithms. The appendices on proofs by induction and discrete probability are extremely helpful for a quick refresher. The only issue is that there are no answers provided for the practice problems.
Casi todos los contenidos del libro los recuerdo aún de la universidad, pero nunca está de más volver a repasarlos para entender cosas nuevas.
Ser una persona con experiencia no ha evitado que conozca nuevos tipos de algoritmos de algoritmos, como counting sort o radix sort.
Incluso por fin he entendido el Quick Sort... y me he dado cuenta de que es infinitamente más sencillo de lo que a priori parece, gracias a la fantástica redacción y amenidad de este libro.
The word illuminated is key for this series. Much like a Medieval Manuscript, how does the accompanying artwork, help the text. The analogy is somewhat broken, since in the case of copying, at the very least, these elements are independent. Prof. Tim Roughgarden, is trying to illustrate, in diagrams, the essential insights of the subject. The presentation choices, are of much interest. Recommended.
Well perfect as other books os this serie. Because of work i finish them in wrong order but it,s almost separate books. So it 's good book about algorithms. I strongly recommend it.
Good Book for somebody who knows the basics of algorithms like computation complexity and alike. It is very much focused on different problem solving paradigms that we have like divide and conquer. Language is not very tough just in the proofs it may not becomes clear at very attempt.
BigO, divide and conquer. The subtle beauty of quicksort and mergesort. Modern day ABCs. Good examples. Thorough analysis without being too long winded.
Tim Roughgarden's Stanford Lectures on Coursera are amazing. This book covers the first part of the his lectures on Coursera. It's very important to understand the intuition for why an algorithm is correct. It is equally important to know the running time analysis of an algorithm. CLRS is the computer science Bible for that but it's dry AF (don't get me wrong, I adore CLRS). Tim's approach is definitely more intuitive, friendlier and makes the process more enjoyable :)