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.

Horizontal and vertical

Let’s say you are blindfolded and taken into a gravity free spherical room where you lose all sense of direction and then you are presented with two square shaped sheets of metal. In addition, it’s promised that if a person standing outside the spherical room looks at the sheets in their present positions, then he will say that one of them is horizontal (meaning it’s lying down) and the other is vertical (meaning it’s standing up on one of its edges). Next, you are given the permission to take those sheets in your hands and inspect them in whatever way you want. Your task is to somehow decide which one was horizontal and which one was vertical when they were given to you. To help you out, you have been connected on phone to a person who is standing outside the sphere and who can see the two sheets through a small whole. You are allowed to ask him as many questions as you want, but the only problem is that he speaks French. So if you point to a sheet and ask him if it is vertical or horizontal, he will tell you the right answer, but you won’t understand it. Can you still accomplish your task? (I am assuming you do not understand French.)

I just came up with this puzzle a few minutes ago. I want to know if the answer I have in mind is trivial or not.