Matching nuts and bolts in O(n log n) time

János Komlós, Yuan Ma, Endre Szemerédi

Research output: Contribution to journalArticle

7 Citations (Scopus)


Given a set of n nuts of distinct widths and a set of n bolts such that each nut corresponds to a unique bolt of the same width, how should we match every nut with its corresponding bolt by comparing nuts with bolts? (No comparison is allowed between two nuts or two bolts.) The problem can be naturally viewed as a variant of the classic sorting problem as follows. Given two lists of n numbers each such that one list is a permutation of the other, how should we sort the lists by comparisons only between numbers in different lists? We give an O(n log n)-time deterministic algorithm for the problem. This is optimal up to a constant factor and answers an open question posed by Alon et al. [Proceedings of the 5th Annual ACM-SIAM Symposium on Discrete Algorithms, 1994, pp. 690-696]. Moreover, when copies of nuts and bolts are allowed, our algorithm runs in optimal O(log n) time on n processors in Valiant's parallel comparison tree model. Our algorithm is based on the AKS sorting algorithm with substantial modifications.

Original languageEnglish
Pages (from-to)347-372
Number of pages26
JournalSIAM Journal on Discrete Mathematics
Issue number3
Publication statusPublished - Aug 1998


  • AKS sorting algorithm
  • Matching
  • Parallel computation
  • Random graphs
  • Selection
  • Sorting

ASJC Scopus subject areas

  • Mathematics(all)

Fingerprint Dive into the research topics of 'Matching nuts and bolts in O(n log n) time'. Together they form a unique fingerprint.

  • Cite this