Abstract
We improve the famous divide-and-conquer algorithm by Bentley and Shamos for the planar closest-pair problem. For n points on the plane, our algorithm keeps the optimal O(n log n) time complexity and, using a circle-packing property, computes at most 7n/2 Euclidean distances, which improves Ge et al.’s bound of (3n log n)/2 Euclidean distances. We present experimental results of our comparative studies on four different versions of the divide-and-conquer closest pair algorithm and propose two effective heuristics.
Similar content being viewed by others
References
Franco P Preparata, Michael Ian Shamos. Computational Geometry: An Introduction. Springer, 1985.
Michael Ian Shamos. Geometric complexity. In Proc. the 7th Annual ACM Symposium on Theory of Computing (STOC'75), Albuquerque, NM, USA, 1975, pp. 224–233.
Michael Ian Shamos, Dan Hoey. Closest-point problems. In Proc. the 16th IEEE Annual Symposium on Foundations of Computer Science (FOCS'75), Los Alamitos, USA, 1975, pp. 151–162.
Michiel Smid. Closest-Point Problems in Computational Geometry. Handbook on Computational Geometry, Sack J R, Urrutia J (eds.), Elsevier Science, 2000.
Jon Louis Bentley, Michael Ian Shamos. Divide-and-conquer in multidimensional space. In Proc. the 8th Annual ACM Symposium on Theory of Computing (STOC'76), Hershey, PA, USA, 1976, pp. 220–230.
Jon Louis Bentley. Multidimensional divide-and-conquer. Communications of the ACM, 1980, 23(4): 214–229.
Michael Ben-Or. Lower bounds for algebraic computation trees. In Proc. the 15th Annual ACM Symposium on Theory of Computing (STOC'83), Boston, MA, USA, 1983, pp. 80–86.
Thomas H Cormen, Charles E Leiserson, Ronald L Rivest et al. Introduction to Algorithms. Second Edition, MIT Press, 2001.
Gianni Franceschini, Viliam Geffert. An in-place sorting with O(n log n) comparisons and O(n) moves. In Proc. the 44th Annual IEEE Symposium on Foundations of Computer Science (FOCS'03), Cambridge, MA, USA, 2003, pp. 242–250.
Yulin Zhou, Pengrong Xiong, Hong Zhu. An improved algorithm about the closest pair of points on plane set. Journal of Computer Research and Development, 1998, 35(10): 957–960. (in Chinese)
Qi Ge, Hai-Tao Wang, Hong Zhu. An improved algorithm for finding the closest pair of points. Journal of Computer Science and Technology, 2006, 21(1): 27–31.
David S Johnson. A theoretician's guide to the experimental analysis of algorithms. In Proc. Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenges, Michael H Goldwasser, David S Johnson, Catherine C McGeoch (eds.), DIMACS Monographs, Vol. 59, MAA Press, 2002, pp. 215–250.
Catherine C McGeoch. A bibliography of algorithm experimentation. In Proc. Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenges, Michael H Goldwasser, David S Johnson, Catherine C McGeoch (eds.), DIMACS Monographs, Vol. 59, MAA Press, 2002.
Catherine C McGeoch, Bernard M E Moret. How to present a paper on experimental work with algorithms. SIGACT News, 1999, 30(4): 85–90.
Intel x86 Instruction Set. http://www.intel.com/.
Erich Friedman. Circles in circles. http://www.ste-tson.edu/–efri-edma/cirincir/.
Eric W Weisstein. Circle packing. MathWorld — A Wolfram Web Resource, http://mathworld.wolfram.com/Circle-Packing.html.
Robert Sedgewick. Algorithms in C++, Parts 1–4: Fundamentals, Data Structure, Sorting, Searching. 3rd Edition, Addison-Wesley, 1998.
Jon Louis Bentley, M Douglas McIlroy. Engineering a sort function. Software: Practice and Experience, 1993, 23(11): 1249–1265.
Author information
Authors and Affiliations
Corresponding author
Additional information
This work is partially supported by Utah State University under Grant No. A13501.
Electronic Supplementary Material
Rights and permissions
About this article
Cite this article
Jiang, M., Gillespie, J. Engineering the Divide-and-Conquer Closest Pair Algorithm. J Comput Sci Technol 22, 532–540 (2007). https://doi.org/10.1007/s11390-007-9066-y
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11390-007-9066-y