English

Finding the saddlepoint faster than sorting

Data Structures and Algorithms 2023-10-26 v1 Combinatorics

Abstract

A saddlepoint of an n×nn \times n matrix AA is an entry of AA that is a maximum in its row and a minimum in its column. Knuth (1968) gave several different algorithms for finding a saddlepoint. The worst-case running time of these algorithms is Θ(n2)\Theta(n^2), and Llewellyn, Tovey, and Trick (1988) showed that this cannot be improved, as in the worst case all entries of A may need to be queried. A strict saddlepoint of AA is an entry that is the strict maximum in its row and the strict minimum in its column. The strict saddlepoint (if it exists) is unique, and Bienstock, Chung, Fredman, Sch\"affer, Shor, and Suri (1991) showed that it can be found in time O(nlogn)O(n \log{n}), where a dominant runtime contribution is sorting the diagonal of the matrix. This upper bound has not been improved since 1991. In this paper we show that the strict saddlepoint can be found in O(nlogn)O(n \log^{*}{n}) time, where log\log^{*} denotes the very slowly growing iterated logarithm function, coming close to the lower bound of Ω(n)\Omega(n). In fact, we can also compute, within the same runtime, the value of a non-strict saddlepoint, assuming one exists. Our algorithm is based on a simple recursive approach, a feasibility test inspired by searching in sorted matrices, and a relaxed notion of saddlepoint.

Keywords

Cite

@article{arxiv.2310.16801,
  title  = {Finding the saddlepoint faster than sorting},
  author = {Justin Dallant and Frederik Haagensen and Riko Jacob and László Kozma and Sebastian Wild},
  journal= {arXiv preprint arXiv:2310.16801},
  year   = {2023}
}

Comments

To be presented at SOSA 2024

R2 v1 2026-06-28T13:01:50.976Z