1.3.3 并行算法
如果条件允许,使用多个处理器来计算凸包也是一种可行的办法,即将点集按照x坐标分成多个子集,然后使用各个处理器计算单个子集的凸包。一旦所有处理器完成了子凸包的计算,就可以通过不断合并相邻子凸包来拼凑出最终的凸包得到。并行计算可以将子问题分配给多个处理器来加快整个解决方案的执行。
图1-5展示了使用3个处理器计算凸包的情况,两个相邻的凸包可以通过加两条切线完成拼接,其中一条切线在顶部,另一条切线在底部。最后,删除这两条切线组成的四边形所包含的线段即可。
图1-5:通过并行构造和衔接得到凸包