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.