Jump to content

Pointer algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by WikiCleanerBot (talk | contribs) at 06:13, 19 June 2025 (v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

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.
  • The find operation is performed by following links from the element node to the set node.

Under these assumptions, the lower bound of on the cost of a sequence of m operations is proven.

References

  1. ^ Tarjan, Robert E. (1979). "A class of algorithms which require nonlinear time to maintain disjoint sets". Journal of Computer and Systems Sciences. 18: 110–127.
  2. ^ La Poutré, Johannes A. (1990). "Lower bounds for the union-find and the split-find problem on pointer machines". Proc. 22nd Annual ACM Symposium on the Theory of Computing. ACM. pp. 34–44.
  3. ^ Blum, Norbert (1986). "On the single operation worst-case time complexity of the disjoint set union problem". SIAM Journal on Computing. 15: 1021–1024.
  4. ^ Blum, Norbert; Rochow, Henning (1994). "A lower bound on the single operation worst-case time complexity of the union-find problem on intervals". Information Processing Letters. 51: 57–60.