Handouts:

9/16/08: Convex hulls in 2D for n points (continued)

See the powerpoint slides.

  • How to merge two convex hulls in linear time: Given convex polygons P and Q, we can compute the convex hull of their union in linear time, by 2 methods: (1) "rotatiing calipers" of Toussaint, or (2) just merge the x-order of the upper/lower hulls of each, and apply Graham scan. This allows divide and conquer to apply even if one does not split at x-median (yielding disjoint convex hulls, for which the "wobbly stick" method gives linear-time merge); an arbitrary split in half works.
  • Melkman's O(n) online convex hull algorithm for simple polygonal chains ("simplicity" matters!). Refer to the handout for more information.
  • Remark about a recent result (my own work, joint with Levcopoulos and Lingas) that shows that a convex hull of n points can be found in time O(n log(chi)) or O(n log k), where chi is the minimum number of subchains in a partition of the input into simple subchains, and k is the number of self-intersections in the input chain. Here, when we speak of a "chain" we mean the polygonal chain obtained by linking the input points in the order that they occur in the input sequence, p1, p2, p3,...
  • Timothy Chan's algorithm for convex hulls in output sensitive time O(n log h) -- this is the best possible running time! Read the 1-page writeup from his paper.