VCE Algorithmics (HESS) study materials
VCE Algorithmics (HESS) study resources

VCE Algorithmics (HESS) key terms

VCE Algorithmics (HESS) · Get comfortable with the vocabulary.

Algorithm

A finite, ordered set of unambiguous steps that takes some input, performs operations on it, and produces an output or stops with no solution. It must terminate.

Related: Pseudocode, Termination, Correctness
Pseudocode

A structured, English-like notation for expressing an algorithm's logic without the strict syntax of a programming language, used to communicate and analyse solutions independently of implementation details.

Related: Algorithm, Invariant
Correctness

The property that an algorithm produces the required output for every valid input, not just typical ones. It is established by reasoning or proof, not by testing alone.

Related: Invariant, Termination, Proof by Induction
Termination

The guarantee that an algorithm halts after a finite number of steps for every valid input. It is usually shown with a variant or a strictly decreasing measure.

Related: Correctness, Variant, Invariant
Loop Invariant

A statement that is true before a loop begins, remains true after each iteration, and, together with the loop's exit condition, helps prove the algorithm's correctness.

Related: Correctness, Proof by Induction, Variant
Variant

A quantity that strictly decreases (or increases toward a bound) with each loop iteration and cannot decrease forever, used to prove that a loop or algorithm terminates.

Related: Termination, Loop Invariant
Proof by Induction

A proof technique with a base case showing a claim holds initially and an inductive step showing that if it holds for one stage it holds for the next, used to justify recursive algorithms and loop invariants.

Related: Recursion, Loop Invariant, Correctness
Recursion

A technique where a function solves a problem by calling itself on smaller instances of the same problem, requiring a base case to stop and a recursive case to reduce the input.

Related: Base Case, Recurrence Relation, Proof by Induction
Base Case

The condition in a recursive definition or algorithm that is solved directly without further recursive calls, preventing infinite recursion and anchoring inductive proofs.

Related: Recursion, Proof by Induction
Recurrence Relation

An equation expressing the running time or output size of a recursive algorithm in terms of its smaller subproblems, such as T(n) = 2T(n/2) + n, which is then solved to find complexity.

Related: Recursion, Time Complexity, Divide and Conquer
Time Complexity

A measure of how the number of basic operations performed by an algorithm grows as input size increases, usually expressed with asymptotic notation and ignoring constant factors.

Related: Big-O Notation, Space Complexity, Recurrence Relation
Space Complexity

A measure of the extra memory an algorithm requires beyond its input as a function of input size, including space for data structures and recursion call stacks.

Related: Time Complexity, Big-O Notation
Big-O Notation

An asymptotic upper bound describing how a function grows, written f(n) = O(g(n)) when f is eventually bounded above by a constant multiple of g, used to classify algorithm efficiency.

Related: Big-Omega Notation, Big-Theta Notation, Time Complexity
Big-Omega Notation

An asymptotic lower bound: f(n) = Ω(g(n)) when f eventually grows at least as fast as a constant multiple of g, used to state best-case or minimum resource requirements.

Related: Big-O Notation, Big-Theta Notation
Big-Theta Notation

A tight asymptotic bound: f(n) = Θ(g(n)) when f is bounded both above and below by constant multiples of g, meaning f and g grow at the same rate.

Related: Big-O Notation, Big-Omega Notation
Worst-Case Analysis

Evaluating an algorithm's resource use on the input of a given size that causes the most work, giving a guarantee that performance never falls below this standard.

Related: Best-Case Analysis, Average-Case Analysis, Time Complexity
Best-Case Analysis

Evaluating an algorithm's resource use on the most favourable input of a given size, useful for comparison but rarely a reliable predictor of typical performance.

Related: Worst-Case Analysis, Average-Case Analysis
Average-Case Analysis

Evaluating expected resource use across a defined distribution of inputs of a given size, requiring assumptions about which inputs are likely to occur.

Related: Worst-Case Analysis, Best-Case Analysis
Divide and Conquer

An algorithm design strategy that splits a problem into smaller independent subproblems, solves them recursively, and combines their results into a solution for the original problem.

Related: Recurrence Relation, Merge Sort, Recursion
Greedy Algorithm

An approach that builds a solution step by step, always choosing the locally best option available, which is fast but only correct when the problem has the right structure.

Related: Dynamic Programming, Optimal Substructure
Dynamic Programming

A technique that solves overlapping subproblems once, stores their results in a table, and reuses them to build up the answer, trading extra memory for reduced computation.

Related: Memoisation, Optimal Substructure, Greedy Algorithm
Memoisation

A top-down optimisation where a recursive function caches each computed result so repeated calls with the same arguments return the stored value instead of recomputing it.

Related: Dynamic Programming, Recursion
Optimal Substructure

The property that an optimal solution to a problem can be constructed from optimal solutions to its subproblems, a precondition for dynamic programming and greedy methods to work.

Related: Dynamic Programming, Greedy Algorithm
Brute Force

A straightforward approach that enumerates every possible candidate solution and checks each one, guaranteed to find an answer but often impractically slow on large inputs.

Related: Heuristic, Combinatorial Explosion
Heuristic

A rule or estimate that guides search toward promising solutions, trading guaranteed optimality for speed, often used when exact methods are too slow.

Related: Brute Force, A* Search, Approximation Algorithm
Approximation Algorithm

An algorithm that runs efficiently and returns a solution guaranteed to be within some proven factor of the optimal, used for hard optimisation problems.

Related: Heuristic, NP-Complete
Graph

A structure of vertices joined by edges, used to model relationships such as networks, maps, and dependencies; edges may be directed or undirected and may carry weights.

Related: Adjacency Matrix, Adjacency List, Traversal
Adjacency Matrix

A graph representation using a two-dimensional array where entry (i, j) indicates whether an edge connects vertex i to vertex j, allowing fast edge checks but using quadratic space.

Related: Adjacency List, Graph
Adjacency List

A graph representation storing, for each vertex, a list of its neighbours, which uses space proportional to the number of edges and suits sparse graphs.

Related: Adjacency Matrix, Graph
Traversal

A systematic procedure for visiting every reachable vertex of a graph or every node of a tree exactly once, forming the basis of search and connectivity algorithms.

Related: Breadth-First Search, Depth-First Search, Graph
Breadth-First Search

A traversal that explores all vertices at the current distance before moving further out, using a queue, and finds shortest paths in unweighted graphs.

Related: Depth-First Search, Queue, Traversal
Depth-First Search

A traversal that follows one path as far as possible before backtracking, typically implemented with a stack or recursion, and useful for cycle and connectivity detection.

Related: Breadth-First Search, Stack, Traversal
Dijkstra's Algorithm

A method that finds shortest paths from a source to all vertices in a graph with non-negative edge weights by repeatedly finalising the closest unfinalised vertex.

Related: Priority Queue, Graph, A* Search
A* Search

A best-first pathfinding algorithm that ranks partial paths by the cost so far plus an admissible heuristic estimate of the remaining cost, finding optimal paths when the heuristic is admissible.

Related: Heuristic, Dijkstra's Algorithm
Stack

A last-in-first-out data structure where insertion and removal occur at the same end, used for recursion, backtracking, and depth-first traversal.

Related: Queue, Depth-First Search
Queue

A first-in-first-out data structure where items are added at one end and removed from the other, used for scheduling and breadth-first traversal.

Related: Stack, Breadth-First Search, Priority Queue
Priority Queue

An abstract data type that returns the element with highest priority first, supporting efficient insertion and removal of the minimum or maximum, often implemented with a heap.

Related: Queue, Heap, Dijkstra's Algorithm
Heap

A tree-based structure satisfying the heap property, where each parent compares favourably with its children, giving efficient access to the extreme element and logarithmic updates.

Related: Priority Queue, Time Complexity
P versus NP

The open question of whether every problem whose solution can be checked quickly can also be solved quickly, central to classifying problems as tractable or intractable.

Related: NP-Complete, Reduction, Intractable Problem
NP-Complete

A class of decision problems in NP to which every problem in NP can be reduced in polynomial time; finding a fast exact algorithm for any one would solve P versus NP.

Related: P versus NP, Reduction, Approximation Algorithm
Reduction

A transformation converting instances of one problem into instances of another so that a solution to the second yields a solution to the first, used to compare problem difficulty.

Related: NP-Complete, P versus NP
Intractable Problem

A problem for which no algorithm with polynomial-time complexity in the input size is known, so exact solutions become impractical as inputs grow.

Related: P versus NP, NP-Complete, Combinatorial Explosion
Combinatorial Explosion

The rapid, often exponential growth in the number of candidate solutions as input size increases, which makes exhaustive search impractical for large instances.

Related: Brute Force, Intractable Problem