Introduction
Status
*This book is currently an ongoing process and chapters might be added / removed in the future*
Currently the following chapters are completed:
Data Structures / Trees
Data Structures / Dynamic Programming
Data Structures / External Data Structures
Metaheuristics
Introduction
In this book you will find important and efficient algorithms used in Computer Science today. This list was created based on the courses that I got during my studies at the University Of Ghent (Belgium), containing 4 major aspects:
Data Structures
Graph Algorithms
String Algorithms
Metaheuristics
These major aspects cover a wide are of algorithms, going from easy tree algorithms to creating inverted file indexes which are used in search engines today.
Please note that this book is created to give a quick overview of the algorithms and how they work. If you want a more in depth explanation of these algorithms, I encourage you to find more material elsewhere.
In the future, I hope to add other important algorithms such as the Sorting algorithms, Dijkstra, ... however because there are so many topics already, I first hope to be able to finish all of those.
Because this book is this large, errors are possible and can be corrected. For errors to be corrected, feel free to open a pull request or an issue at: https://github.com/thebillkidy/Algorithms
Programming Interview
I used this summary to prepare for my interview with Microsoft in February 2017. I mainly focused on the following concepts:
Datastructures:
Linked List
Stack
Queue
Graph
Hash Table (separate chaining, linear probing, hash functions)
Trees (b-tree, bst, heap, prefix-tree (trie), red-black tree)
Algorithms:
DFS
BFS
Dijkstra
Floyd-Warshall
Quick sort
Insertion Sort
Heap Sort
Bucket Sort
Radix Sort
Binary Search
Last updated