Independently published, 2024. — 139 p. — ISBN: 979-8413681985.
A concise, illustrated guide to algorithms and data structures, perfect for coding interviews, classes, or self-study. Covers key concepts, from fundamentals to graphs, trees, sorting, and search techniques.
This book is a concise and illustrated guide for anyone who wants to brush up on their fundamentals in the context of coding interviews, computer science classes or to satisfy their curiosity.
It is divided into 4 parts:Foundations: main types of algorithms and related mathematical concepts.
Data structures: arrays, strings, queues, stacks, hash tables, linked lists, and associated theorems and tricks.
Graphs and trees: graph concepts and graph traversal algorithms along with important types of trees.
Sorting and search: common, efficient sorting and search algorithms.
Book overviewThis 150-page book aims to be on your desk at all times to refresh your memory on key Computer Science concepts.
It contains 400+ intuitive and colored illustrations along with practical examples to deeply understand each concept.
The parts below show a glimpse of what this book has to offer.
Fundamentals of Algorithms and Data StructuresUse cases.
Technical interviews.
Computer Science classes and exams.
Own curiosity.
Stack data structure.
Fundamentals of Algorithms and Data Structures.
AlgorithmsTypes of algorithms: brute-force, backtracking, divide and conquer, dynamic programming.
Different kinds of complexity (time, space), along with orders of magnitude in practical use cases.
Mathematical concepts in combinatorics, analysis, and bit manipulation.
Classic problems: traveling salesman problem (TSP), knapsack, N-Queens, coin change.
Data structuresArrays and strings: definition, theorems (e.g. Kadane's algorithm), and tricks (merge intervals, longest substring).
Stacks and queues: definition and practical use case (daily temperature problem).
Hash tables: load factor, collision resolution, bloom filter, count-min sketch.
Linked lists: definition, operations, and tricks (tortoise and hare algorithm, LRU cache).
Breadth-first search.
Graphs and treesGraphsBasic traversal algorithms such as Breadth-First Search (BFS) and Depth-First Search (DFS).
Shortest path algorithms: Dijkstra's, A*, Bellman-Ford, Floyd-Warshall.
Spanning trees: Prim's algorithm, Kruskal's algorithm, Kosaraju's algorithm.
TreesBinary trees: definition and tricks (lowest common ancestor, balanced tree).
Heaps: heapify, bubble up/down, and applications (k smallest elements).
Binary search trees (BST), N-ary trees, and prefix trees (trie).
Self-balancing trees, rotations, red-black trees, range query, binary index tree, segment tree.
Sorting algorithm.
Sorting and searchSorting algorithmsBasic: bubble sort, insertion sort, selection sort, and cycle sort.
Efficient: merge sort, heap sort, and quick sort.
Special: counting sort and radix sort.
Searching algorithmsBasic: linear search, two-pointer technique, trapping water problem.
Binary: definition and applications such as median of two sorted arrays.
Substring search: string pattern matching, KMP algorithm, Rabin-Karp algorithm.