Complexity Classes
Classifications of computational problems by resource requirements, including P, NP, and NP-complete.
Classifications of computational problems by resource requirements, including P, NP, and NP-complete.
Operating system algorithms that determine which process or thread runs on the CPU, including FCFS, SJF, Round Robin, and priority-based …
An algorithmic paradigm that recursively breaks a problem into smaller subproblems, solves them independently, and combines the results.
An algorithmic technique that solves complex problems by breaking them into overlapping subproblems and storing their solutions.
Algorithms for traversing and finding paths in graphs, including BFS, DFS, Dijkstra's, and A*.
Algorithms that make the locally optimal choice at each step, aiming for a globally optimal or near-optimal solution.
Data structures that map keys to values using hash functions for near-constant-time lookup, insertion, and deletion.
Tree-based data structures that efficiently support finding and extracting the minimum or maximum element.
Fundamental linear data structures for organizing and accessing data sequentially.
Self-referential functions and systematic trial-and-error with pruning for exploring solution spaces.
Algorithms for finding elements in data structures, including linear search, binary search, and interpolation search.
A behavioral design pattern that defines a family of algorithms, encapsulates each one, and makes them interchangeable at runtime.
Hierarchical data structures including BSTs, AVL trees, red-black trees, and B-trees for efficient searching and storage.
Arrays, hash maps, trees, graphs, queues, and vector stores - how the choice of data structure shapes the performance of AI pipelines.
How sorting and search algorithms underpin AI pipeline design: complexity trade-offs, partial sorting for top-k selection, tiered analysis …
An introduction to Big-O notation and how it describes the asymptotic behavior of algorithms.