The 3SUM problem is to decide, given a set of n real numbers, whether any
three sum to zero. It is widely conjectured that a trivial O(n2)-time
algorithm is optimal and over the years the consequences of this conjecture
have been revealed. This 3SUM conjecture implies Ω(n2) lower bounds on
numerous problems in computational geometry and a variant of the conjecture
implies strong lower bounds on triangle enumeration, dynamic graph algorithms,
and string matching data structures.
In this paper we refute the 3SUM conjecture. We prove that the decision tree
complexity of 3SUM is O(n3/2logn) and give two subquadratic 3SUM
algorithms, a deterministic one running in O(n2/(logn/loglogn)2/3)
time and a randomized one running in O(n2(loglogn)2/logn) time with
high probability. Our results lead directly to improved bounds for k-variate
linear degeneracy testing for all odd k≥3. The problem is to decide, given
a linear function f(x1,…,xk)=α0+∑1≤i≤kαixi and a set A⊂R, whether 0∈f(Ak). We show the
decision tree complexity of this problem is O(nk/2logn).
Finally, we give a subcubic algorithm for a generalization of the
(min,+)-product over real-valued matrices and apply it to the problem of
finding zero-weight triangles in weighted graphs. We give a
depth-O(n5/2logn) decision tree for this problem, as well as an
algorithm running in time O(n3(loglogn)2/logn)