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.