Pointer algorithm

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computer science, a pointer algorithm (sometimes called a pointer machine, or a reference machine; see the article Pointer machine for a close but non-identical concept) is a type of algorithm that manages a linked data structure. This concept is used as a model for lower-bound proofs and specific restrictions on the linked data structure and on the algorithm's access to the structure vary.

This model has been used extensively with problems related to the disjoint-set data structure. Thus, Tarjan and La Poutré used this model to prove lower bounds on the amortized complexity of a disjoint-set data structure[1][2] (La Poutré also addressed the interval split-find problem). Blum used this model to prove a lower bound on the single operation worst-case time of disjoint set data structure.[3] Blum and Rochow proved a worst-case lower bound for the interval union-find problem.[4]

Example

[edit | edit source]

In Tarjan's lower bound for the disjoint set union problem, the assumptions on the algorithm are:

  • The algorithm maintains a linked structure of nodes.
  • Each element of the problem is associated with a node.
  • Each set is represented by a node.
  • The nodes of each set constitute a distinct connected component in the structure (this property is called separability).
  • The find operation is performed by following links from the element node to the set node.

Under these assumptions, the lower bound of Ω(mα(m,n)) on the cost of a sequence of m operations is proven.

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • See also Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).