Handouts:
3/9/09: Convex hulls in 2D
See the
slides
Questions on HW4?
QuickHull: This is a type of divide-and-conquer algorithm with
worst-case time O(n^2). For uniformly distributed points, though, it
is expected time O(n). It works well in practice and generalizes to
higher dimensions.
Divide and conquer algorithm: O(n log n). (Section 3.8)
We discussed the method and showed how to merge in O(n) time using
the "wobbling stick" to find the common tangents of two disjoint hulls.
One can test in time O(1) if a point v is a left tangent point with respect
to a point u. (Just do a couple cross products.)
On-line incremental algorithm for computing CH of points in the
plane at O(log n) time per insertion (using O(log n) binary search to
decide if a new point is inside the current hull or not, and then
O(log n) binary search to find the two points of tangency, if the new
point is outside the current hull). See Section 3.7 of O'Rourke.
(For Grad Students)
The randomized incremental CH algorithm for points:
the expected time is O(n log n), shown using "Backwards
Analysis" technique of Paul Chew and Raimund Seidel. There is a nice
simple analysis based on conditioning.