100种算法【Python版】第42篇——Quickhull算法
本文目录
1 算法说明
Quickhull算法于1977年由Eddy和Preparata首次提出,旨在通过分治策略有效计算点集的凸包。它借鉴了快速排序(Quicksort)的思想,利用递归的方式快速找到点集的外部点,以构建凸包。
算法原理
- 初始点选择:
- 找到点集中的最左和最右点,这两个点必定在凸包上。
- 这两个点形成一条基线,将点集分为上下两个部分。
- 递归分割:
- 对于每个部分,找出距离基线最远的点,这个点也在凸包上。
- 使用该点将区域分为两个新的子区域。
- 递归地处理这两个子区域,直到没有点在区域外部。
- 合并结果:
- 将所有递归步骤找到的点合并,构成完整的凸包。
算法步骤
(1)初始化:
- 找到最左点和最右点,设为
原文地址:https://blog.csdn.net/qq_32882309/article/details/143480170
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!