A Faster Convex-Hull Algorithm via Bucketing

In the convex-hull problem, in two-dimensional space, the task is to find, for a given sequence S of n points, the smallest convex polygon for which each point of S is either in its interior or on its boundary. In this paper, we propose a variant of the classical bucketing algorithm that (1) solves the convex-hull problem for any multiset of points, (2) uses \(O(\sqrt{n}\,)\) words of extra space, (3) runs in O(n) expected time on points drawn independently and uniformly from a rectangle, and (4) requires \(O(n \lg {} n)\) time in the worst case. Also, we perform experiments to compare bucketing to other alternatives that are known to work in linear expected time. In our tests, in the integer-coordinate setting, bucketing was a clear winner compared to the considered competitors (plane-sweep, divide & conquer, quickhull, and throw-away).

[1]  Yijie Han,et al.  Deterministic sorting in O(nloglogn) time and linear space , 2004, J. Algorithms.

[2]  Olli Nevalainen,et al.  An Internal Hybrid Sort Algorithm Revisited , 1992, Comput. J..

[3]  Luc Devroye,et al.  Lecture Notes on Bucket Algorithms , 1986, Progress in Computer Science.

[4]  Selim G. Akl,et al.  On the Average-Case Complexity of "Bucketing" Algorithms , 1982, J. Algorithms.

[5]  Charles Darwin,et al.  Experiments , 1800, The Medical and physical journal.

[6]  H. T. Kung,et al.  On the Average Number of Maxima in a Set of Vectors and Applications , 1978, JACM.

[7]  Jonathan Richard Shewchuk,et al.  Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates , 1997, Discret. Comput. Geom..

[8]  Roger S. Scowen Algorithm 271: quickersort , 1965, CACM.

[9]  Michael Ian Shamos,et al.  Divide and Conquer for Linear Expected Time , 1978, Inf. Process. Lett..

[10]  Luc Devroye,et al.  Expected Time Analysis of Algorithms in Computational Geometry , 1985 .

[11]  Selim G. Akl,et al.  A Fast Convex Hull Algorithm , 1978, Inf. Process. Lett..

[12]  Bernard W. Silverman,et al.  Constructing the Convex Hull of a Set of Points in the Plane , 1979, Comput. J..

[13]  S. Dvorák,et al.  Stable Linear Time Sublinear Space Merging , 1987, Comput. J..

[14]  Ronald L. Graham,et al.  An Efficient Algorithm for Determining the Convex Hull of a Finite Planar Set , 1972, Inf. Process. Lett..

[15]  A. M. Andrew,et al.  Another Efficient Algorithm for Convex Hulls in Two Dimensions , 1979, Inf. Process. Lett..

[16]  Donald C. S. Allison,et al.  Some performance tests of convex hull algorithms , 1984, BIT.

[17]  Richard C. Singleton Algorithm 347: an efficient algorithm for sorting with minimal storage [M1] , 1969, CACM.

[18]  Pat Morin,et al.  Space-efficient planar convex hull algorithms , 2004, Theor. Comput. Sci..

[19]  Jyrki Katajainen,et al.  Convex-Hull Algorithms: Implementation, Testing, and Experimentation , 2018, Algorithms.

[20]  David R. Musser,et al.  Introspective Sorting and Selection Algorithms , 1997, Softw. Pract. Exp..

[21]  Torben Hagerup,et al.  Sorting and Searching on the Word RAM , 1998, STACS.

[22]  David G. Kirkpatrick,et al.  The Ultimate Planar Convex Hull Algorithm? , 1986, SIAM J. Comput..

[23]  F. P. Preparata,et al.  Convex hulls of finite sets of points in two and three dimensions , 1977, CACM.

[24]  HanYijie Deterministic sorting in O(nlog logn) time and linear space , 2004 .

[25]  M. Iri,et al.  Practical use of Bucketing Techniques in Computational Geometry , 1985 .

[26]  Godfried T. Toussaint,et al.  A note on linear expected time algorithms for finding convex hulls , 1981, Computing.

[27]  Jan van Leeuwen,et al.  Further Comments on Bykat's Convex Hull Algorithm , 1980, Inf. Process. Lett..

[28]  Yijie Han,et al.  Deterministic sorting inO(nlog logn) time and linear space , 2002, STOC 2002.

[29]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[30]  William F. Eddy,et al.  A New Convex Hull Algorithm for Planar Sets , 1977, TOMS.

[31]  A. Bykat,et al.  Convex Hull of a Finite Set of Points in Two Dimensions , 1978, Inf. Process. Lett..