Simplified Linear-Time Jordan Sorting and Polygon Clipping
The Jordan sorting problem is, given the intersection points of a Jordan curve with the x-axis in the order in which they occur along the curve, sort them into the order in which they occur along the x-axis. This problem arises in clipping a simple polygon against a rectangle (a "window") and in efficient algorithms for triangulating a simple polygon. Hoffman, Mehlhorn, Rosenstiehl, and Tarjan proposed an algorithm that solves the Jordan sorting problem in time linear in the number of intersection points, but their algorithm requires the use of a sophisticated data structure, the level-linked search tree. We propose a variant of the algorithm of Hoffman et al. that retains the linear time bound but simplifies both the operations required on the key data structure and the data structure itself.