Independently published, 2024. — 139 р. — 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 own 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 at being 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