Deciding if a point is inside a convex polygon in O(logn) time Take any vertex of the polygon and use it as an "anchor" in a binary search. First attach the vertex to one roughly n/2 vertices away. Decide if your query point is to the left or right of this segment. This eliminates half of the polygon. You are still left with a convex polygon. Repeat, by attaching the anchor to a vertex at distance n/4, etc. In the end, you are left with a cone, formed by the anchor and two successive vertices, u and v. Now you can just check in O(1) time if the query point is inside the triangle (anchor,u,v) i.e. inside the polygon. ----------------------------------------------------------------- Computing the two tangents (new hull edges) for a point outside a convex polygon. ... in O(logn) time If you join an edge E from the new point to any vertex V of the polygon, you get just a few simple cases, depending on what side of E you will find edges V-1,V and V,V+1. Only at the tangents will both of these consecutive edges be to one side of E. It is very simple geometry to decide which direction to proceed on a binary search, in the other cases. ----------------------------------------------------------------- Updating the hull by computing tangents You can add the two tangents to a hull in O(logn) time, as mentioned above. IF you want to delete the edges adjacent to vertices that all of the sudden became interior points, it might take you O(n) time for a specific inserted point. But overall you can only delete edges that you constructed, so there is only a linear number of deletions after inserting n points to a hull. ------------------------------------------------------------------ So, for n sequential insertions of points, you get the hull at every iteration, using a total of O(nlogn) time.