Simple deterministic algorithms for fully dynamic maximal matching

Research output: Contribution to journalArticlepeer-review


A maximal matching can be maintained in fully dynamic (supporting both addition and deletion of edges) nvertex graphs using a trivial deterministic algorithm with a worst-case update time of O(n). No deterministic algorithm that outperforms the naïve O(n) one was reported up to this date. The only progress in this direction is due to Ivković and Lloyd, who in 1993 devised a deterministic algorithm with an amortized update time of O((n + m) √2/2), where m is the number of edges. In this article, we show the first deterministic fully dynamic algorithm that outperforms the trivial one. Specifically, we provide a deterministic worst-case update time of O(√m). Moreover, our algorithm maintains a matching, which in fact is a 3/2-approximate maximum cardinality matching (MCM). We remark that no fully dynamic algorithm for maintaining (2 - ε)-approximate MCM improving upon the näve O(n) was known prior to this work, even allowing amortized time bounds and randomization. For low arboricity graphs (e.g., planar graphs and graphs excluding fixed minors), we devise another simple deterministic algorithm with sublogarithmic update time. Specifically, it maintains a fully dynamic maximal matching with amortized update time of O(logn/loglogn). This result addresses an open question of Onak and Rubinfeld [2010]. We also show a deterministic algorithm with optimal space usage, which for arbitrary graphs maintains a maximal matching in amortized O(√ m) time and uses only O(n + m) space.

Original languageEnglish
Article number7
Pages (from-to)7:1-7:15
JournalACM Transactions on Algorithms
Issue number1
StatePublished - 1 Nov 2015


  • Dynamic algorithms
  • Maximal matching
  • Maximum matching

All Science Journal Classification (ASJC) codes

  • Mathematics (miscellaneous)


Dive into the research topics of 'Simple deterministic algorithms for fully dynamic maximal matching'. Together they form a unique fingerprint.

Cite this