C++UCS301Data Structures · C++
AnalysisLinearSearchSortingTreesHeapsGraphsSpatial
Complexity Lab C++ Practice Setup Visualizer
Back to curriculum

Course section

Algorithm Analysis

Measure how algorithms scale, compare growth rates, and reason about time, memory, and computational sustainability.

5 topics
01

Algorithms & Analysis

An algorithm is a finite, unambiguous sequence of steps that transforms input into output. Analysis predicts resource use independently of a particular machine.

C++ implementation
02

Big-O, Ω & Θ

Asymptotic notation describes the eventual growth of a function while ignoring constants and lower-order terms.

C++ implementation
03

Complexity Classes

Complexity classes group problems and algorithms by resource growth: constant, logarithmic, linear, linearithmic, polynomial, exponential, and factorial.

04

Order Arithmetic

Rules for loops, branches, sequential blocks, and recurrences let us derive a program's overall asymptotic complexity.

C++ implementation
05

Time–Space Trade-offs

Algorithms often exchange memory for speed. Good engineering chooses a balance that fits latency, hardware, energy, and environmental constraints.

UCS301 Data Structures · C++17 · Year 2

Built for understanding, not memorisation · zssh.dev

Found a syllabus gap, incorrect explanation, or site issue? Visit the GitHub repository and open an issue.