在课堂上我们看到了以下问题,但我没有找到解决方案。有没有人能够更详细地解释我解决这个问题的程序或给我一个更好的解决方案?:
假设给出了平面中的n个点。找到一个带有n-1个边的多边形弧,其顶点被赋予点,并且其边不相交。(相邻边可以形成180°角)。操作数量为n log n。
老师的解决方案是:
相对于x坐标对所有点进行排序;当x坐标相等时,将y坐标考虑在内,然后按线段连接所有顶点(按此顺序)。
答案 0 :(得分:2)
老师的解决方案(幸运的是)很好。我会试着为你想象一下。
只需绘制情节上的点。然后,您可以从最左边的点到下一个点绘制一条线。这样,连接到右边的所有点。
如果所有的点都有不同的x坐标,那么它将会运行,并且没有线会穿过:
对于具有相同x坐标的点,我们首先转到最低(最小的y坐标),然后再向上。也没有穿越那里。