- Paperback: 535 pages
- Publisher: Createspace Independent Pub (9 March 2011)
- Language: English
- ISBN-10: 145654988X
- ISBN-13: 978-1456549886
- Product Dimensions: 21.6 x 2.4 x 27.9 cm
- Average Customer Review: Be the first to review this item
- Amazon Bestsellers Rank: #5,45,707 in Books (See Top 100 in Books)
Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles Paperback – Import, 9 Mar 2011
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter mobile phone number.
|5 star (0%)|
|4 star (0%)|
|3 star (0%)|
|2 star (0%)|
|1 star (0%)|
Most helpful customer reviews on Amazon.com
Background: I am CS graduate warming up for Job hunting, with 10+ years of programming experience.
I was so excited when I first saw the book (title) several weeks ago. Now I have finished several chapters and I should say it is not as great as it appears.
Let's cut to the meat directly.
1) Nice chapter organizations. It helps you to know what are the major topics you should work on to warm up for a coding interview.
2) Each chapter has a general introduction to the basic concepts.
3) Each chapter has a set of problems, with some decent analysis and solutions.
1) False advertisement. 700 puzzles? Come on. You do not have that many puzzles! Let's look at an example in the linked list chapter.
Problem #2: Find the nth node from the end of the list (give the puzzle, with a solution that guarantee you to be rejected by any interviewer).
Problem #3: Can we improve the solution of #2? (you will still be rejected if you present a solution like this)
Problem #4: Can we solve the same problem without hash table? (Here starts with the solution that make some sense)
Problem #5: Can we solve #2 in one scan? (finally here gives a good solution)
Many of the problems in the book are like this: different solutions to the SAME puzzle, You can do it, sure. But it is called an analytical process or algorithmic design process to one single problem. They are not different puzzles! Furthermore, the first 2 solutions are usually very naive, which can barely be counted as solutions. Sometimes, even the final version is not efficient enough.
2) Presentation mistakes, solution errors, typos.
For example, the presentation of XOR linked list in the linked list chapter is just wrong. You can not traverse 2 directions using just one node address.
For example, The solutions to problem 15 and problem 30 in the list chapter are wrong. The solution errors are actually more frequent because of cons #1.
For example, the usage of the term "hash table" is abusive and misleading. Why not follow the conventional usage? Not every table is a hash table.
3) Not many insightful ideas or analysis to a topic. Even there are multiple solutions to the same problem, the book does not show the underlining analytical process.
So to understand a topic or a problem well, you must read other data structure or algorithms books.
Suggestions to readers:
I used to read more than 5 algorithm/data structures on the same topic at the same time, which is in general a good approach to study a topic. This approach will
be especially useful when you read this book due to the reasons presented above. Remember to check out other online resources for coding problems too.
1) Buy the book. It is helpful.
2) Read it with your own discretion.
3) Read other books and online resources on the same content at the same time.
Suggestions to authors (Why AUTHORS? Because I am almost 100% sure that some content was written by students):
1) Fix your false advertisement. Combine your "problems" together in to real puzzles. Do not present very dumb solutions just for the advertised numbers. Readers are fine without them. Let's respect our limited resource on the earth.
2) Add more problems to your book. I have seen about 80% problems elsewhere.
3) Fix your mistakes, errors and typos. Especially the presentation mistakes are not acceptable. Understand a topic before you add it into your book.
If you're trying to prepare for a techinical software programmer interview, this book may at least give you some idea what kinds of questions you will face.
Where was the editing and proof reading? I can live with sub-par English grammar, especially if the author is foreign. But there are constant grammar and punctuation errors in this book. If you're a copy-editor or grammarian, it will drive you insane reading it.
For the rest of you who are presumably trying to prepare for a software developer interview and are able to get past the poor grammar, there is A LOT of code in this book, along with explanations. I think that is a good thing for computer programmers. Just be aware that not all of the code compiles as-is. Some of it compiles, but some of it will not.
If you're a good developer, you will spot where these errors are located. In fact, a good developer could view this book as a challenge and be able to look at the author's code that is sub-par and view that as "pseudo-code" that needs polishing to work as designed.
To be fair, not all the code is sub-par, but enough of it is to make you wonder who some of the other reviewers gave this book 5 stars.
Since this is an interview preparation book... you shouldn't have to deal with that level of poor quality. The author should have had his book proof-read by a technical reviewer.
This book has lots of explantion (even if grammatically inconsistent) to go with lots of code.
Some of the code isn't quite compilable, but just view this as "pseudo-code" that needs work, and it will at the very least give you an idea how the author approached certain problems. This may spark some creativity in you if you didn't know how to solve a certain problem. His "pseudo code" will be like a hint to help you along. It won't get you fully to your destination, but it will get you part-way there.
It wouldn't be so bad if there was a website where you could go and download the correct code and other errata. But I could not find such a site, so due to the lack of proper support, poor grammer, and not fully compilable code, I reduced the stars accordingly.
Your best bet is to read the sections you're interested in, and then type the code in your editor, try to compile it and see where it fails, then try to fix it, using the author's explanations as a guide to what he intended.
If you read this book from this angle, then the book may be a great learning experience for you because you will learn how to make someone's code work. Let's face it, as developers we often spend our time fixing code someone else wrote, and this book provides that experience.
Throw in math errors and the tree traversal that labels tree nodes A-G yet in the object diagram shows them all as "A" except for one that is "B".
I wish I had checked it within the return period, because I would have sent it back. I may list it or just recycle it, but I won't waste any more time trying to wade through it. Instead I'll just dig out my old Sedgewick for my review and reference.