Skip to main content

Introduction

Status

This note is complete, reviewed, and considered stable.

Algorithms deal with how data is processed efficiently and how problems are solved systematically. They form the foundation of writing programs that scale beyond small inputs, where performance, memory usage, and predictability matter. Algorithms are fundamentally about trade-offs, time versus space, simplicity versus efficiency and choosing the right approach based on the problem at hand. Rather than memorizing solutions, learning algorithms builds the ability to reason about efficiency, understand how code behaves as input grows, and design systems that remain reliable under load.

Here in the notes, we'll include notes on various algorithms. We will discuss how each algorithm works, their trade-offs, their performance characteristics, and when to use them.