Divide-and-conquer sorting algorithm using merging.

Caching results of expensive function calls.

Tree containing every vertex of a connected graph.

Sorting algorithm using partitioning around a pivot.

Bottom-up dynamic programming using a table.

Data structure for managing disjoint sets.

Sorting algorithm using a heap data structure.

Smaller problem within a larger algorithmic problem.

Collection of non-overlapping sets.

Sorting algorithm counting occurrences of discrete values.