# Curves

If you have been given a bunch of points on a plane, finding the convex hull takes $\Omega(n\log n)$ time. However, if you have been given, in addition, a non self-intersecting curve passing through all the points and the order in which the points occur along the curve, then the convex hull can be found in linear time. I find it a bit surprising that a non self-intersecting curve passing through all the points actually contains sufficient information to remove the $\log n$ factor from the run-time of an algorithm. What are some other places where this information helps?

# The Chuck Norris of Computational Geometry

(Note – This blog post is posted under the category TCS. If you are not working in computer science or mathematics, this post will not make sense to you. The same is going to apply to all future posts in this category)

I recently read a paper with the following abstract –

A number of seemingly unrelated problems involving the proximity of $N$ points in the plane are studied, such as finding a Euclidean minimum spanning tree, the smallest circle enclosing the set, $k$ nearest and farthest neighbors, the two closest points, and a proper straight-line triangulation. For most of the problems considered a lower bound of $\Omega (N\log N)$ is shown. For all of them the best currently-known upper bound is $O(N^2)$ or worse. The purpose of this paper is to introduce a single geometric structure, called the Voronoi diagram, which can be constructed rapidly and contains all of the relevant proximity information in only linear space. The Voronoi diagram is used to obtain $O(N\log N)$ algorithms for all of the problems.

This feels a lot like a roundhouse kick.

PS: Note that the $\Omega(N\log N)$ lower bound applies only to most of the problems. In particular, the smallest enclosing circle problem has a linear time algorithm.