Gift wrapping

Gift Wrapping is perhaps the simplier of the Convex Hull algorithms. Starting from the lowest, left-most point (this point has to be on the hull), "gift wrap" by choosing the next point such no points lie on the left of the line created by the current point and the next point. Repeat this until it wraps around back to the original point. The algorithm runs in $$O(nh)$$ time, or $$O(n^2)$$ worst-case.

Pseudo-code
p = left-most, bottom point current = p do { // Sentinel leftmost = 1 for i from 2 to N       // If line current->leftmost is to the left of current->point[i] if ( left( current, point[i], leftmost ) ) leftmost = i   // Output and move on. current = point[leftmost] } while ( current != p )
 * p, current is a 2D point.
 * point is an array containing the points.