100种算法【Python版】第41篇——Chan‘s 算法

1 算法说明

Chan’s 算法由 Timothy M. Chan 于 1996 年提出,旨在提高计算凸包的效率,特别是在大规模数据集上。它结合了Gift Wrapping和Graham扫描,具有较好的性能,实现了更快的计算速度。

Chan’s 算法的基本思想

  • 分组:将点集分成若干小组,对每组独立计算凸包。
  • 合并:使用有效的合并策略(如 Jarvis March)将所有小组的凸包合并成一个整体凸包。
  • 迭代:逐步增加小组大小,确保在可接受的时间内完成计算。

完整实现步骤

  • 选择初始组大小:选择一个较小的组大小 m m