SummaryGrokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You’ll start with sorting and searching and, as you build up your skills in thinking algorithmically, you’ll tackle more complex concerns such as data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python.Learning about algorithms doesn’t have to be boring! Get a sneak peek at the fun, illustrated, and friendly examples you’ll find in Grokking Algorithms on Manning Publications’ YouTube channel.Continue your journey into the world of algorithms with Algorithms in Motion, a practical, hands-on video course available exclusively at Manning.com (www.manning.com/livevideo/algorithms-in-motion).Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the TechnologyAn algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you’ll use most often as a programmer have already been discovered, tested, and proven. If you want to understand them but refuse to slog through dense multipage proofs, this is the book for you. This fully illustrated and engaging guide makes it easy to learn how to use the most important algorithms effectively in your own programs.About the BookGrokking Algorithms is a friendly take on this core computer science topic. In it, you’ll learn how to apply common algorithms to the practical programming problems you face every day. You’ll start with tasks like sorting and searching. As you build up your skills, you’ll tackle more complex problems like data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them.What’s InsideCovers search, sort, and graph algorithmsOver 400 pictures with detailed walkthroughsPerformance trade-offs between algorithmsPython-based code samplesAbout the ReaderThis easy-to-read, picture-heavy introduction is suitable for self-taught programmers, engineers, or anyone who wants to brush up on algorithms.About the AuthorAditya Bhargava is a Software Engineer with a dual background in Computer Science and Fine Arts. He blogs on programming at adit.io.Table of ContentsIntroduction to algorithmsSelection sortRecursionQuicksortHash tablesBreadth-first searchDijkstra’s algorithmGreedy algorithmsDynamic programmingK-nearest neighbors.
File Size: 63 MB
Available File Formats: PDF AZW3 DOCX EPUB MOBI TXT or Kindle audiobook Audio CD(Several files can be converted to each other)
Language: English, Francais, Italiano, Espanol, Deutsch, chinese
Aditya Bhargava is a Software Engineer with a dual background in Computer Science and Fine Arts. He blogs about programming at adit.io. <div id="
This was a good attempt at something marvelous, unfortunately it is only that: an attempt; the book falls rather short. I dearly wanted to give a very positive review for this book as the premise of it was incredibly promising. I purchased it, and it sat on my bookshelf several months before I opened it beyond a quick peruse of a few pages. Those brief glances at the opening pages only added to my excitement about sitting down with the book later.However, once I actually did get the time to read this book cover to cover, I was immensely disappointed. The three stars given are primarily because the book starts off very strong; the coverage of binary search and the intro to Big-O provides precisely what was promised. Yet, these are only about the first 20 pages. After this beginning, the book becomes somewhat erratic, I cannot for the life of me understand why more of the sorting algorithms were not covered. The only sorts covered are quicksort and selection sort. There is a section titled ‘Mergesort vs Quicksort’ in which merge sort is only mentioned, not described or explained at all, and this is only a single paragraph; insertion sort gets only a sentence.The book’s treatment of recursion is fantastic, but gets at my worst frustration with this book: the author discusses and thoroughly describes basic recursion, providing excellent illustrations of the call stack during execution and tracing the entire execution of a recursive function. At the end of this exercise, he mentions tail recursion (a critical aspect of recursion that more than merited the explanation, which would not have taken much more considering he’d already explained the call stack) and says it’s beyond the scope of the book. However, the second half of the book is then dedicated to advanced topics like K-nearest neighbors (solid explanation) and just mentioning things that one would end up studying elsewhere on one’s own. A whole chapter is dedicated to Dijkstra’s Algorithm (again, solid coverage), which is a somewhat advanced algorithm that benefits from his illustrations and descriptions, but leaves to question, who made the decision to leave out a more complete description of recursion and thorough coverage of searches and sorts in lieu of what at the end seems like filler chapters? Anyone who is at the point of needing to understand those two algorithms likely won’t read an illustrated book on the topic; to me, these topics supplant those someone intrigued by the idea of this book might’ve come seeking.There are errors, but they’re no biggie. The very first piece of code in the book contains an omission that causes it to malfunction (setting of the variable ‘mid’ should divide the sum of ‘high’ and ‘low’ by 2). I came to realize it may have been due to a page layout or typesetting issue as I found the same problem in several chapters. It seems the edges of the code are partially covered by images. The coverage of Big-O beyond the intro chapter is a little weak, and only helped because I had some previous knowledge of the concepts surrounding it, and the fact that much of the explanation is repeated several times, so some bits finally sink in. I could see how someone coming to this book hoping to have ‘aha’ moments about algorithms would be left very lost.The author also uses the technique of describing how something works in a simple way and then a section later taking it all back and saying ‘this is really how it works’. I’ve seen this before, and it can be effective, but a writer must take care the manner in which he simplifies the initial example. This happens rather confusingly in the explanation of hash tables (associative arrays) in relation to their performance. If you’re following his description of them, its clear that him saying they return values ‘instantly’ is somewhat odd particularly when you understand what O(1) actually means. When he follows up to clarify, which he does by describing how hash tables can be slow in some cases, the clarification isn’t really satisfying as you didn’t really absorb the chapter wondering if perhaps you missed something before since hash tables were glowingly described as the data structure to end all data structures. He then goes into discussing (incompletely) the implementation of hash tables, which he keeps saying ‘you’ll never have to do’. He then trails off with a brief description of things to consider when using them without really implementing a hash table in code as suggested (examples ‘using’ hash tables are given, but the mention of ‘implementing’ them comes after this and indicates an upcoming example which never materializes).I wrote this review only as a warning. The implementation of the book is a solid 2 stars considering the price; the first half gets it to 3. The book is about 50% as described, 50% the author seemingly trying to prove he has a CS degree. Perhaps friends told him the book was too simplistic. Unfortunate. The heavy appearance of 5 star reviews here greatly misled me. Reading them afterward, it seems most are praising the idea of the book and not its actual execution. Had I read it during the return period, I would have returned it. I am a intermediate-level programmer. I understood most of these topics at a basic level beforehand. I ordered this book because I had been recommending it to others, who wanted to learn about algorithms from scratch, as the premise of it sounded excellent. I finally decided to read it myself since I’ve been raving about it for the last year; I wish I had read it first. It’s a fun read, but don’t expect any epiphanies. If you’re a beginner, you’re actually better off searching “basic sorting/searching algorithms” online and learning from YouTube videos until you can grasp the content of a college textbook (or one of the programming interview prep books which cover algorithms very thoroughly without the math of a university text). This book starts off great, but finishes more like a set of blog posts written over the course of a year, by a person who couldn’t wait to prove to you how smart he was becoming day by day. I know many times a project can start off as one thing, and then after input by many people and via your own desires to do something great, lose its way; it seems that may have happened here with the author deciding that the basic algorithms were too mundane, and choosing to try and explain more impressive concepts which somewhat ironically, are ‘beyond the scope of this book’.
This book takes a very stripped down, illustrated approach to introducing some basic algorithms and programming concepts. It’s a broad, shallow dive, but is quick and easy to understand for what it covers, esp compared to going directly to the math or reading dense text. Good if you like illustrations & visual examples, and if you want only a cursory introduction to the concepts and examples of a few well-known useful algorithms. It sort of adopts the approach of the “Head First” series with little cartoons and hand-drawn examples & conceptual illustrations. It does seem a bit like class notes and is *too* simplified to really be of much practical use though.I’d say probably start here if you’re totally new to the topic, and/or only want some bare-bones laymen’s explanations.After this, look at Jay Wengrow’s “Common Sense Guide to Data Structures and Algorithms” from Pragmatic Programmers, which is similar to this book, but walks through its examples and implementations in (a little) more depth.
I’m a front end dev without any formal computer science education. In the past, when I heard terms related to algorithms and big O notation, they seemed scary and made me feel totally unqualified to be part of that world. But the reality is, a lot of these concepts seem more difficult than they really are. When they’re presented in simple terms with examples and illustrations, you start to realize that it’s not beyond you at all – you just haven’t learned it yet. This book does an incredible job of making these concepts accessible. I recommend it to anyone without a formal CS background, whether you’re new to programming, or like me, have been doing it for a long time but haven’t had much exposure to algorithms. I recently used this book as a resource when preparing for coding interviews, and it was invaluable. I give it a ton of credit for helping me land my current job in a role I didn’t think was possible for me just a few years ago.
Just my opinion – I thought it was a little too advanced for a “true” beginner (i.e. at 53 going back to school full time for CS after gulp 30 yrs). Might be best for those with a tad more recent schooling or experience. Having said that its well organized and well written. I suspect after my first semester and getting back into the “groove of things”, it will suite my needs more than it currently does. I would also make a suggestion to the author to create a video/on-line course (i.e. udacity, lynda, etc).
Despite having been a software developer for more years than is socially acceptable, I lack a background in computer science – granted, I have a doctorate in computational physics and can write code for money but I’ve never had any formal training in the ‘fundamentals’ of computer science.Let’s get something straight: algorithms can be hard, and when you get down to the nitty gritty the source material is drier than a particularly dry thing at midday in the Sahara so anything that attempts to make the concepts more palatable to the self-taught is to be applauded irrespective of whether or not it succeeds. The thought of an illustrated book will, no doubt, make the purists recoil in horror – that’s their loss. Sometimes a couple of drawings are far more illuminating than pages full of discrete mathematics, and this is what we have here.This won’t be to everyone’s tastes – some programming knowledge is assumed, but the fundamentals are discussed in a fluff-free manner with short snippets of code (in Python) to reinforce the points made. The usual suspects are here: starting with binary search, moving up through various sorting and tree/graph algorithms with a brief detour into NP-complete problems such as the travelling salesman and knapsack problem. There’s an excellent overview of big-O notation and one of the better explanations of recursion that I’ve come across – I almost feel that I understand it now.If your background is in ‘hard’ computer science then there’s probably very little here for you – having said that, if you’re self-taught or have moved into software development from another discipline then you’ll probably learn something. Certainly, I found even the basic stuff to be very illuminating and have started applying some of the concepts to my own code with tangible results.TL;DR – if you’ve already got a grounding in computer science then look elsewhere- there are plenty of other books on algorithms and algorithmic design that will go into excruciating amounts of detail. If you’re not one of these people and want to get up to speed then this may be right up your street – the content is engaging enough that it’ll encourage you to read more deeply into the subject.
Is grokking for beginners?grokking algorithms looks like it’s written for a grade schooler. Cute cartoon animals habitats the illustrations, which look hand drawn, like a friendly comic artist is just guiding you through a difficult subject.Unfortunately the context is ill-digested.The difficulty of the subject is not well translated for the beginner. In fact, a more formal looking textbook would provide more clearer explanations.In short, this is just another algorithm intro book with friendly rat cartoons.Do not recommend
Absolutely terrible, please read on.It’s hard to know where to begin with this review, I’ll try my best to keep it as brief as possible.TLDR – Badly put together, concepts explained in a horrible meaningless way. “A book for visual learners” is quite honestly a lie. Some algorithms are just simply not explained at all, with no depth and bad ‘visual’ illustrations. If you want the most basic, sometimes not even that, explanations of a few algorithms in a physical format then waste your money on this. For those that want a better more completely FREE explanation, then might I suggest you look at the chapter headings from this book and google them. Taking the first page that is offered, unless it is from the blog of this author lol. Trust me you will get far more for your ‘troubles’.1 – The 3rd sentence in the ‘about this book’ section = “Any time a new concept is introduced, I explain it right away or tell you when I’ll explain it”. – Every new concept is followed by …..”I’ll talk more about that in later chapters”. Every single one, in the first 40 pages it is easily said 10+ times. Quick spoiler alert, most of the time it is rarely explained very well in whatever chapter you find it.I can’t begin to tell how aggravating I found this to be. It was honestly like ‘part’ learning something, it very quickly became a rather annoying thing to read.2 – The way in which things are explained is just terrible, I mean shockingly terrible. In one of the early chapters to explain why an algorithm is correct and works, the author bizarrely uses flawed logic to make his point. It is hard to convey this here without typing out everything but believe me when I say it was something along the lines of “This is why 1 + 1 = 2. If we change one of the 1’s to a 3 then it would equal 4. Ha-ha, I told you 1 + 1 = 2”.I found the whole explanation just odd. Very strange considering it is a book about algorithms and by its very nature relies on logic. For the author to use such an illogical argument to prove a point was just awkward to read.I honestly don’t think this book was read in depth by anyone before it went to print, as someone would have picked up on things like this. I don’t feel the author has any authority on teaching the subject matter tbh. The way in which he decides to explain algorithms is sometimes confusing, almost as if he has gone out of his way to make it different to anyone else’s way before him. Only to end on a bad example and be happy that it is good enough because it is original.3 – “This book is for visual learners” – Never was a term more misused I’m afraid. I kid you not when I tell you that most of the ‘visual’ sections are simply tables / graphs seemingly hand drawn on the page with a handwriting font used, instead of a basic text font. I was honestly left laughing after 40-50 pages having realised this is what the author meant by visually explaining concepts for visual learners lolIf someone who knows more about visual learning than I, could explain how changing fonts in a book from standard book text to one that looks like it was handwritten makes the learning experience better then I’d love to hear (see) it. I’m afraid there was nothing visually helpful in this book for me. A standard table with a standard font would have been just as good and better, as the use of a handwritten font meant it was sometimes harder to read. At times this was not helped at all as the illustrator sometimes decided to write the characters on their side.4 – Amazon states this book is 300 pages long – Eh no, not even close Amazon. A flat out lie. Firstly, the index (always at the back of a book) starts on page 235 (it’s not a huge index, in case you were thinking). Secondly on any given page, the lines are no more than 15 words long. There is a gap of 1 inch to the left of text on every page. Then there is a gap of roughly 2.5 inches to the right of the text on every page.I’m sure you’re now thinking, oh but this must be where all the wonderfully helpful illustrations are. Don’t kid yourself lol. For the most part these gaps are never used. It’s a weird tactic I’m guessing to try and pad the book out? Make it seem like there is more than there really is? Yeah, it doesn’t work.In fact, I would be scared to work out how many pages of writing this book is, I’m going to guess a very conservative 80 pages. That is of course with all the meaningless illustrations taken away also.5 – I can’t for the life of me see any reason as to why I would recommend this book to anyone if I’m being honest. I’ve come away having finished it laughing about it more than thinking “Ah fantastic, now I understand x, y & z.How this is number 1 in Algorithmic Programming on Amazon is beyond me. How some are rating it more than 2 stars is also confusing me. With some reviewers stating how they got more from the 1st 10 pages of this book than a year in uni ?????? LMAO.I highly recommend you look at ‘A Common-Sense Guide to Data Structures and Algorithms’ over this book. Amazon states that book is 250 pages and yet the index starts on page 475 LMAO – You couldn’t make that crap up lol. With that you will get an in-depth explanation of data structures and algorithms and will come away from it knowing you have learnt something. With the author not trying to reinvent the wheel with weird and different ways to explain his ideas.In case you’re still unsure on my thoughts – I highly recommend you DO NOT buy this book.
Grokking Algorithms is a great introduction to algorithms for anybody new to programming. What makes the book stand out is its use of pictures to help explain how the algorithms work.Several concepts that aren’t algorithms per se are also explained, for example arrays, linked lists, hash maps and call stacks. The book covers a broad range of algorithms, from basic ones, like binary search and sorting, to more advanced like graph algorithms and dynamic programming.The implementations are given in Python. However, the emphasis is not on the code, but on explaining how the algorithms work. The true test to see if you have understood the content is to write your own implementations of the algorithms. Reading this book is a good first step to that understanding.
After years of University Computer Science, its amazing how little you know about programming.This book is specifically geared towards the visual learner. We want to “see” where we’re going, and this book gives you more in the first chapter than an entire year of University education.If you’re a visual learner, this book is unique and a must have.There is nothing else on the market that has this approach. You can “see” the point, the logic and how it works, and that’s it. You’ve learnt a “hard concept” and are grinning from ear to ear, as it’s taken you 10 minutes.
About Aaovo.com ：
We are committed to sharing all kinds of e-books, learning resources, collection and packaging, reading notes and impressions. The book resources of the whole station are collected and sorted by netizens and uploaded to cloud disk, high-definition text scanning version and full-text free version. This site does not provide the storage of the file itself.
Description of file download format: (Note: this website is completely free)
The e-books shared by this site are all full versions, most of which are manually refined, and there are basically no omissions. Generally, there may be multiple versions of files. Please download the corresponding format files as needed. If there is no version you need, it is recommended to use the file format converter to read after conversion. Scanned PDF, text PDF, ePub, Mobi, TXT, docx, Doc, azw3, zip, rar and other file formats can be opened and read normally by using common readers.
Copyright Disclaimer :
This website does not store any files on its server. We only index and link to the content provided by other websites. If there is any copyrighted content, please contact the content provider to delete it and send us an email. We will delete the relevant link or content immediately.
Download link description ：
We usually use Dropbox, Microsoft onedrive and Google drive to store files. Of course, we may also store backup files in other cloud content management service platforms such as Amazon cloud drive, pcloud, mega, mediafire and box. They are also great. You can choose the download link on demand.