Algorithms with Implementations in C: A Quantitative Approach Paperback – February 8, 2019

Henry H Liu



You might want to learn algorithms and implementations for a variety of reasons, including: (1) you are a student in CS or another science or engineering major and target a career in the field of computers or software in future, (2) you are a software professional and look for ways to improve your productivity, quality of work, and efficiency, and (3) you want to find a more challenging job and need to prepare for your coding interviews. No matter what your motivations are, this text helps equip you with a solid understanding of most common algorithms that run as many electronic devices and applications as one can imagine. Besides, your learning of algorithms is enhanced with implementations in C, with many examples from real coding interviews from a few top computer and software tech companies such as Amazon, Apple, Facebook and Google. The programming language C is chosen as it is not only the closest to how actual computing devices work but also the most compact in terms of programming language syntax and constructs. C is the most ideal language for learning algorithms, as mostly you have to code everything yourself and you can do anything you want with it.
Although some may suggest that algorithms can be studied and understood in a language- and machine-independent manner, this text is heavy on coding and light on math and textual descriptions. It advocates learning algorithms with real, working code instead of no code or pseudo code. To help you assess the level of your problem solving skills with algorithms and data structures, three real, formal onsite coding interview problems are made available in the Preface section of this text. You can use these examples to check whether you have reached the master level in algorithms and implementations.
The subjects covered in this book are logically organized as follows: 
 * Introduction to algorithm design 
 * Implementing algorithms in C 
 * Sorting
 * Searching
 * Hash tables 
 * Linked lists 
 * Queues 
 * Trees 
 * Graphs 
 * Miscellaneous
 In essence, this text helps you learn most common algorithms and implementations in C within a manageable timeframe of a few months.