There is an example for a triangulation with just one obtuse triangle in each step.![enter image description here][1] In the image, only triangle $A_1A_2O$ is obtuse. With your algorithm we draw altitudes and reach $H_1,H_2,H_3,...$ and always we have only one obtuse triangle (in step i, triangle $A_rH_iO$ where $r$ is the remainder of $i+2$ modulo $6$), so we are forced to draw it's altitude. ![enter image description here][2] Red segments are the altitudes and green segments are the added segments to regain a proper triangulation. So there is a triangulation that never terminates. Now consider the adjacency graph of the initial triangulation. (Vertices are triangles and edges are between two triangle with common segment) If this graph is a tree, i.e. there is not a hole in the region or a vertex with 360 degrees (like $O$ in the image) in the triangulation, then we can choose the order of splitting such that the algorithm terminates. Here is the algorithm: Choose an obtuse triangle ($abc$) and drop its altitude ($ax_1$), add the other segment ($dx_1$), now probably $x_1$ is the obtuse vertex of a new triangle namely $dx_1c$, drop the altitude form $x_1$ in the new triangle ($x_1x_2$), now continue with $x_2$ and drop its altitude, and continue dropping altitudes from new vertices, you never come back to a segment because there no cycle in the graph, so this procedure ends, now ($abc$) is done and the number of obtuse triangles are less than the the number of initial ones. Repeat this procedure for each obtuse triangle until you are done. [1]: https://i.sstatic.net/lt92b.png [2]: https://i.sstatic.net/yDuQO.png