We present an O(n log n)-time algorithm to solve the three-dimensional layers-of-maxima problem. This is an improvement over the prior O(n log n log log n)-time solution. A previous claimed O(n log n)-time solution due to Atallah et al.[2] has technical flaws. Our algorithm is based on a common framework underlying previous work, but to implement it we devise a new data structure to solve a special case of dynamic planar point location in a staircase subdivision. Our data structure itself relies on a new extension to dynamic fractional cascading that allows vertices of high degree in the control graph.Key Words. Fractional cascading, Layers of maxima, Planar point location.
Introduction.A point p ∈ d dominates another point q ∈ d if each coordinate of p exceeds that of q. Given a set S of n points in d , the maximum points are those that are not dominated by any point in S. The maxima set problem, of finding all the maximum points in S, is a classic problem in computational geometry, dating back to the early days of the discipline [11]. Interestingly, the algorithm presented in the original paper by Kung et al. [11] is still the most efficient known method for solving this problem; it runs in O(n log n) time when d = 2 or 3 and O(n log d−2 n) time when d ≥ 4. This problem has subsequently been studied in many other contexts, including solutions for parallel computation models [9], for point sets subject to insertions and deletions [10], and for moving points [7].The layers-of-maxima problem iterates this discovery: after finding the maximum points, remove them from S and find the maximum points in the remaining set, iterating until S becomes empty. The iteration index in which a point is a maximum is defined to be its layer. More formally, for p ∈ S, layer( p) = 1 if p is a maximum point; otherwise, layer( p) = 1 + max{layer(q) : q dominates p}. The layers-of-maxima problem, which is related to the convex layers problem [4], is to determine layer( p) for each p ∈ S, given S.With some effort [1], the three-dimensional layers-of-maxima problem can be solved in time O(n log n log log n) using techniques from dynamic fractional cascading [13]. We sketch this result in Section 2. Atallah et al. [2] claim an O(n log n)-time algorithm, but their presentation appears to have several problems. A simple, linear-time reduction from sorting gives an (n log n)-time lower bound in the comparison model.