Category: Amortized data structures

Fibonacci heap
In computer science, a Fibonacci heap is a data structure for priority queue operations, consisting of a collection of heap-ordered trees. It has a better amortized running time than many other priori
Scapegoat tree
In computer science, a scapegoat tree is a self-balancing binary search tree, invented by in 1989 and again by and Ronald L. Rivest in 1993. It provides worst-case lookup time (with as the number of e
Pairing heap
A pairing heap is a type of heap data structure with relatively simple implementation and excellent practical amortized performance, introduced by Michael Fredman, Robert Sedgewick, Daniel Sleator, an
Link/cut tree
A link/cut tree is a data structure for representing a forest, a set of rooted trees, and offers the following operations: * Add a tree consisting of a single node to the forest. * Given a node in o
Order-maintenance problem
In computer science, the order-maintenance problem involves maintaining a totally ordered set supporting the following operations: * insert(X, Y), which inserts X immediately after Y in the total ord
Disjoint-set data structure
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that stores a collection of disjoint (non-overlapping) sets. Equivale
Queap
In computer science, a queap is a priority queue data structure. The data structure allows insertions and deletions of arbitrary elements, as well as retrieval of the highest-priority element. Each de
Shadow heap
In computer science, a shadow heap is a mergeable heap data structure which supports efficient heap merging in the amortized sense. More specifically, shadow heaps make use of the shadow merge algorit
Amortized analysis
In computer science, amortized analysis is a method for analyzing a given algorithm's complexity, or how much of a resource, especially time or memory, it takes to execute. The motivation for amortize
Day–Stout–Warren algorithm
The Day–Stout–Warren (DSW) algorithm is a method for efficiently balancing binary search trees – that is, decreasing their height to O(log n) nodes, where n is the total number of nodes. Unlike a self
Dynamic array
In computer science, a dynamic array, growable array, resizable array, dynamic table, mutable array, or array list is a random access, variable-size list data structure that allows elements to be adde
Soft heap
In computer science, a soft heap is a variant on the simple heap data structure that has constant amortized time complexity for 5 types of operations. This is achieved by carefully "corrupting" (incre
Splay tree
A splay tree is a binary search tree with the additional property that recently accessed elements are quick to access again. Like self-balancing binary search trees, a splay tree performs basic operat
List-labeling problem
In computer science, the list-labeling problem involves maintaining a totally ordered set S supporting the following operations: * insert(X), which inserts X into set S; * delete(X), which removes X
Finger tree
In computer science, a finger tree is a purely functional data structure that can be used to efficiently implement other functional data structures. A finger tree gives amortized constant time access