第8章 数论算法及计算几何算法.ppt

第八章 数论算法及计算几何算法;8.5 凸包问题;解决方法: 1、穷举搜索法 2、分治法; 1、算法思想 : 根据凸多边形的定义,对于一个由n个点组成的集合S中的任意两个点Pi和Pj,当且仅当该集合中的其它点要么位于穿过Pi和Pj直线的同侧,要么位于线段PiPj上。则线段PiPj是该集合凸多边形边界的一部分。对每一个点都做一遍检验之后,满足条件的线段就构成了该凸包的边界。 ;2、算法求解步骤 : 步骤1:对于集合中的任意两点Pi和Pj ,定义穿过两点Pi和Pj的直线方程 。 (x-xi) / (xj-xi) =(y-yi) / (yj-yi) 步骤2:将点集S中的其余点代入直线方程,然后检查是否位于线段同侧,如果不是,说明线段PiPj不是点集S的凸多边形的边界。 否则,PiPj是凸多边形的边界。 步骤3:对点集中的每个点,重复上述步骤1和步骤2,直到找出全部多边形的边界。 ;3、算法程序语言描述 详见课本 4、算法分析 点集中的点构成的线段数目最多为n(n-1)/2,对每一条线段,最坏情况要检查点集中其余n-2个点属于哪个半平面, 故算法的时间复杂性为O(n3) ;8.5.2凸包问题的分治法 1、算法思想 将点集S中的点按照x坐标升序排序,x坐标相同的按照y坐标升序排序,排

文档评论(0)

1亿VIP精品文档

相关文档