Top critical review
a book for geniuses
Reviewed in India on 24 September 2018
This book contains a large number of problems that is the only redeeming quality with this book. And also the algorist site has solutions to many problems which helps a lot. Now that i have listed out the good points let us start with the negatives.
If you are looking to understand why something is something this is definitely not the book to use. Let me illustrate with an example paragraph from the book :
"How much time does this algorithm" ( calculation of fibonacci series ) "take to compute F(n)? Since Fn+1/Fn =phi= (1+ sqrt(5))/2 =1.61803, this means that Fn > 1.6n. Since our recursion tree has only 0 and 1 as leaves, summing up to such a large number means we must have at least 1.6n leaves or procedure calls! This humble little program takes exponential time to run. "
This is an actual text from the book trying to explain the complexity of calculating fibonacci series numbers, also an example of how not to write a paragraph to explain something. How did the sqrt of 5 come about what is with Fn+1/Fn and what is this greek symbol phi. Maybe i am not as smart enough to read this and make sense out of, but then again this is a personal opinion.
Another passage for heapsort :
"Power in any hierarchically-structured organization is reflected by a tree, where each node in the tree represents a person, and edge (x,y) implies that x directly supervises (or dominates) y. The fellow at the root sits at the “top of the heap."
I struggled to figure out how a heap is different from a tree, why cant the same be stated simply and then allow for more analysis of how things work out, this is again a personal opinion and maybe smarter people can understand and use the same.
All i am saying is data structures and algorithms is a reasonably difficult subject in its own, without the additional complexity introduced in this book. My free advice to the author would be to explain what exists or what can be a trivial or brute force solution to a problem, differentiate clearly how the new approach is different and try to integrate the same into the trivial solutions correctness. Please do not make me jump to another section of the book for more explanation when the said section has more concepts which have not been introduced until now, if i knew all the terms used in the later section why would i be reading this book ?