首页 » 算法技术手册 » 算法技术手册全文在线阅读

《算法技术手册》使用环境

关灯直达底部

Akl-Toussaint启发式函数(1978)能够显著地改善算法的总体性能。它抛弃那些在极端四边形中的点。图9-10描绘了图9-4的点所得的极端四边形,启发式函数会抛弃那些灰色的点,这些点不可能组成凸包。

图 9-10 工作中的Akl-Toussaint启发式函数

检查是否一个点p在极端四边形中,我们可以通过如下方法:想象一条从p开始到一个极端点(p.x,-∞)的线段s,计算s和四边形四条边相交的次数[1],如果只有一次,那么p是属于四边形内,可以被抛弃。这个计算需要的步数是固定的,所以性能是O(1),也就是说Akl-Toussaint启发式函数的性能是O(n)。对于大量的随机点来说,这个启发式函数能够在排序前删除掉几乎一半的点,排序的性能将会明显提高。

[1]具体实现处理了一些特殊情况,例如当线段s恰好与极端四边形的某个终点相交。