This book presents a complete collection of algorithms implemented in the C programming language. Many algorithms are described in this book such as sorting, searching, string-processing, geometric, graph, and mathematical algorithms.

These algorithms are represented in terms of compact implementations in C so that readers can both understand their fundamental properties and implement them in real applications. The method of the analysis of algorithms is quite carefully designed. When appropriate, analytic results are described to explain why certain algorithms are preferred. In some cases, the practical algorithms’ relationship being discussed to purely theoretical results is also described.

## Parts 1-4: Fundamentals, Data Structures, Sorting, Searching

This book provides a detailed analysis of basic data structures and algorithms. These fundamentals data structures include Stack, Queue, Linked Lists, and Arrays. The algorithms include sorting, searching, and other applications of these algorithms. These data structures and algorithms are explained concisely using examples and implemented in C Programming Language. This helps the reader both understand the basics, theoretical concepts and test them on real-world applications. Of course, the substance of the book applies to programming in any language. This book provides

- Numbers of detailed and innovative figures clearly demonstrate how important algorithms work.
- Throughout the book, “properties” sections show specific information on the performance attributes of algorithms.
- More than 5 chapters present the fundamental concepts and a short introduction to data structures.
- Algorithms in C provide tools to implement, run, and debug useful algorithms confidently.

This book may be useful for self-study or as a reference for people engaged in developing computer systems for application programs.

A reader of the book explains his experience with the book and code examples. He explains the finest details mentioned in the book, for example, insertion sort with a sentinel. The use of a sentinel key is more cost-effective than performing while operation. No other programming book shows this simple improvement. None of the insertion sorts I saw in practice using this tiny add-on called sentinel to achieve the quite dramatic speedup of the algorithm.

“This is an eminently readable book which an ordinary programmer, unskilled in mathematical analysis and wary of theoretical algorithms, ought to be able to pick up and get a lot out of…”

— Steve Summit, author of C Programming FAQs

A reader of the book explains his experience with the book and code examples. He explains the finest details mentioned in the book, for example insertion sort with a sentinel. The use of a sentinel is more efficient than performing *while* operation. No other programming book shows this simple improvement. Also none of the insertion sorts which I saw in the practice use this so tiny add-on sentinel to achieve the quite dramatic speedup of the process.