liveBook · Manning

Exponential time complexity

As explained in Fabulous Adventures in Data Structures and Algorithms

An exponential-time algorithm has a running time that grows exponentially with input size.

Exponential time complexity describes algorithms whose running time grows exponentially with input size. General algorithms for graph coloring are exponential because no polynomial-time solution is known. section 8.7

Backtracking exposes the trade-off clearly: it guesses every possible color for a selected node, recurses, and rejects partial assignments that violate constraints. A reducer can avoid enumerating some impossible branches, but the worst-case search remains exponential. section 8.7

Graph coloring

Color each graph node by repeatedly selecting a node, trying all possible colors, and classifying the result as broken, complete, or partial. The partial cases continue recursively; constraint-based reduction makes practical instances manageable without changing the general complexity class. section 8.7

How Fabulous Adventures in Data Structures and Algorithms covers it

How deep it goes
Defines exponential algorithms through backtracking behavior and contrasts them with polynomial algorithms, without proving complexity bounds.
Examples
Uses graph coloring with recursive color guesses, partial assignments, broken results, complete solutions, and reducer-based pruning.
What you can do after
Evaluate exponential search by identifying recursive branching and recognizing how reduction can make practical instances manageable.
How it connects
Links exponential time complexity to backtracking search, graph coloring, NP-complete problems, polynomial-time algorithms, and Cartesian products.

Also explained in

Compare how 3 books explain exponential time complexity →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Fabulous Adventures in Data Structures and Algorithms. The section links point to the parts of the book it draws on.