Main objective is not to give you the theorems and proofs about DS and Algorithms. I have followed a pattern of improving the problem solutions with different complexities (for each problem, you observe multiple solutions with different improved complexities). Basically, its an enumeration of possible solutions. With this approach, even if we get a new question it gives us a way to think about all possible solutions.
Target Audience?
These books are very much useful for interview preparation, exam preparation, campus preparations.
Language?
All code was written in C . I am planning to release the same in Java and as of now there is no time bound for this :)
All the above details can also be seen CareerMonk.com
Note : Before taking decision, I strongly recommend you to go through the sample chapters provided in site. That gives you an idea about the pattern of problems in the book. If you feel this will help others, please spread this mail.
The main objective of this book is to make people aware of importance of data structures and algorithms.
As a job seeker if you read the referenced books completely with good understanding, I am sure you will challenge the interviewers and that is the main objective.
If you read as an instructor , you will give better lectures with easy go approach and a result your students will feel proud for selecting Computer Science/Information Technology as their degree.
These books are very much useful for the students of Engineering and Masters during their academic preparations. All the chapters of this book contain theory and their related problems as many as possible. There are a total of approximately 700+ algorithmic problems and all of them are with solutions.
And finally if you read as a student preparing for competition exams [or any other exam for Computer Science/Information Technology], then the content of this book covers all the required topics in full detail. While writing the book, an intense care has been taken to ensure that the content should help students who are preparing for these kinds of exams.
In all the chapters you will see more importance given to problems and analyzing them instead of concentrating more on theory. For each chapter, first you will see the basic required theory and then problems.
A morale booster for all those people who need to binge-read algorithms before a test/interview. The shoddy editing of the book is evident by the direct copy-pasted material from online sources. Wouldn't recommend to anyone to learn Algorithms unless they are on a time crunch.
The book goes through data types, data structures, and algorithms with real-life examples to place the learner in a position to relate the data structures to the kind of problems they solve.
My Notes for Own Future Reference:
Chapter 1: Intro to Data Structures and Algorithms
A data type in a programming language is a set of data with predefined values. Examples of data types are integer, floating-point, unit number, character, string, etc. Computer memory is all filled with zeros and ones. If we have a problem and we want to code it, it’s very difficult to provide the solution in terms of zeros and ones. To help users, programming languages and compilers provide us with data types. For example, integer takes 2 bytes (actual value depends on the compiler), float takes 4 bytes, etc. This says that in memory we are combining 2 bytes (16 bits) and calling it an integer. Similarly, combining 4 bytes (32 bits) and calling it a float. A data type reduces the coding effort. At the top level, there are two types of data types: • System-defined data types (also called Primitive data types) • User-defined data types
Based on the discussion above, once we have data in variables, we need some mechanism for manipulating that data to solve problems. The data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. A data structure is a special format for organizing and storing data. General data structure types include arrays, files, linked lists, stacks, queues, trees, graphs, and so on. Depending on the organization of the elements, data structures are classified into two types: 1) Linear data structures: Elements are accessed in sequential order but it is not compulsory to store all elements sequentially. Examples: Linked Lists, Stacks and Queues. 2) Non – linear data structures: Elements of this data structure are stored/accessed in a non-linear order. Examples: Trees and graphs
Stacks are seen as a vertical linear collection, whereas queues can be seen as a horizontal linear collection of elements. The collection of plates placed one over the other is a real-world example of a stack, whereas people standing in a queue to pay an electricity bill is a real-world example of the queue
Use a stack when you want to get things out in the reverse order than you put them in. Use a list when you want to get anything out, regardless of when you put them in (and when you don't want them to automatically be removed)
An algorithm is the step-by-step unambiguous instructions to solve a given problem.
Not the best book to pick up if you’re a beginner. The writer has not taken the time to explain the concepts in detail and I felt like it was trying to cover too much in lesser pages. Also, the codes are downright wrong a lot of times. And it’s not interactive at all.
Explains all the Data structures and Algorithms concepts. This books language is easy to understand and it has lots of problems to solve, to strengthen your knowledge.
Typos and no polish. I suspect that the author copied and pasted from multiple sources and rushed it to the printer. Do yourself a favor and pass on this one.
The book is good in the sense that it can be useful to beginners as well as experienced to know/recap the logic. However the book is best suitable to the students who want to prepare for campus placement or to the job seekers.
The language used in the book is very clear and to the point. The author has presented several solution to the same problem keeping in mind the time/space complexity.
This book can also be used as a reference book for revising algorithm.