Pointer jumping, also called path doubling, is a design technique for parallel algorithms that operate on pointer-based structures such as linked lists and directed graphs. At each step, every node replaces its pointer to its immediate successor with a pointer to that successor's own successor, so the distance a pointer reaches doubles on each round, letting a path of length n be traversed in time proportional to the logarithm of n rather than to n itself. According to the computer scientist Joseph JaJa, the earliest uses of the idea appeared in early parallel graph algorithms and list-ranking problems, and by the 1990s the term pointer jumping was standard in parallel-algorithms textbooks; applications include list ranking, finding roots of forests, computing connected components, minimum spanning trees and biconnected components, as well as uses outside graph theory in computer vision, image compression and Bayesian inference.
Facts
Time Complexity
Time Complexity (category)Logarithmic Time -- O(log n) 1 Connections
In Field
Source Wikipedia: Pointer jumping
Sources
1. Wikipedia: Pointer jumping
- Pointer Jumping: complexity O(log N)
Article text
Pointer jumping allows an algorithm to follow paths with a time complexity that is logarithmic with respect to the length of the longest path.
In Field: Algorithms and Complexity Theory, Lead sentence
Pointer jumping or path doubling is a design technique for parallel algorithms that operate on pointer structures, such as linked lists and directed graphs.
View the SourceReader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.
Sign in to dispute this or suggest a correction.