Book One: Have you ever wondered how a programmer develops games and writes code without having to think too much? Do you want to know what makes a programmer confident about the code they write? Do you want to learn how programmers use algorithms to determine how to structure their programs before they develop it? Then this is the book for you.
An algorithm is a set of rules or instructions you provide to a system. The system performs a specific process to answer a question using these instructions. As an amateur or expert, it is important for you to understand what an algorithm is and how you should define it. Once you learn to develop an algorithm, you can easily learn to develop code to execute that algorithm. Throughout this book, you will learn about the following:
- Algorithms and their characteristics
- How you should define the algorithm
- Types of algorithms
- Analyzing an algorithm based on time and space complexities
- Writing code keeping an algorithm in mind
- And more!
This book will also show you how to implement the sorting and searching algorithms using C and Java programming languages, since these are the most common languages used by programmers. Bear in mind an algorithm is only a set of instructions, and this means you can use an algorithm to write code using different programming languages. You will only need to understand the properties of the programming language and use the right syntax.
Book Two: Are you interested in furthering your knowledge of algorithms? Do you want to learn how they work for real-world problems? Then you've come to the right place. This guide will walk you through algorithm design before digging into some of the top design techniques.
Here's what you will learn:
- The steps involved in designing an algorithm
- The top algorithm design techniques
- The divide and conquer algorithm
- The greedy algorithm
- Dynamic programming
- The branch and bound algorithm
- The randomized algorithm
- Recursion and backtracking
- And everything that goes with them.
Included are plenty of algorithm designs and code implementations to show you how it all works.
Book Three: Are you studying data science and want to take your learning further? Data structures are an integral part of data science, machine learning, and algorithms, all aimed at solving programming challenges that might seem insurmountable at the outset. Advanced Data Structures for Algorithms builds on your current knowledge, taking your learning much deeper and teaching you how to solve even the trickiest of challenges.
This audiobook has been divided into four parts. Part one covers advanced lists, including:
- An overview of linked lists
- Doubly linked lists
- XOR linked lists
- Self-organizing lists
- Unrolled linked lists
Part two covers trees, including:
- Segment trees
- Trie trees
- Fenwick trees
- AVL trees
- Red-black trees
- Scapegoat trees
- Treap
- N-ary
Part three discusses disjoint sets or union-finds, as they are sometimes known.
Part four covers heaps and priority queues, including:
- A brief discussion on binary heaps
- Binomial heaps
- Fibonacci heaps
- Leftist heaps
- K-ary heaps
- Iterative heapsorts
You’ll find plenty of code examples to help you make sense of it all.