得到或者理解一个高效的解的最有效方法是从输入(或者任务)相关的假设和不变性入手。例如: ·给定一个线段集,存在垂直或者水平线段吗? ·给定一个点集,是否有三点共线?如果不存在,那么认为这些点处于一般位置,能够简化很多算法。 ·输入包含的点是否均匀分布?或者这些点在某种方式上聚成簇,可能会导致某些算法处于最坏情况? 本章描述的大多数算法都有值得我们去寻求正确方法的异常边缘情形,我们将在代码中描述这些情形。