当前位置: 首页 > wzjs >正文

网站做字工具建设导航网站

网站做字工具,建设导航网站,网站建设合同范本下载,求个网站2021年能用1. 理论原理推导 核心思想 Graham 扫描法基于以下基本思想: 极角排序: 选取一个参考点(通常选择 y 坐标最小的点,若存在多个,则选 x 坐标最小的),将其他点按照与该参考点构成的极角进行升序排…

1. 理论原理推导

核心思想

Graham 扫描法基于以下基本思想:

  • 极角排序:
    选取一个参考点(通常选择 y 坐标最小的点,若存在多个,则选 x 坐标最小的),将其他点按照与该参考点构成的极角进行升序排序。这样排序后的点序列沿参考点方向依次展开,便于后续的凸包构造。

  • 利用栈进行构造:
    从参考点开始,依次将排序后的点加入栈中。每加入一个新点,都检查当前栈顶的两个点与新点形成的转向:

    • 如果转向为左转(或者说逆时针转),说明当前点有可能是凸包的一部分,继续压入栈中;

    • 如果转向为右转(顺时针)或共线,说明栈顶点不满足凸包条件,需要弹出栈顶点。如此反复,直至满足左转条件,再将当前点压入栈中。

几何证明

  • 正确性证明:
    利用“循环不变量”思想,可以证明:

    • 在每一步,栈中保存的点构成部分凸包(即所有点均处于边界的外侧)。

    • 如果出现右转,则说明栈顶点处于内部,不可能在最终凸包上,将其删除。

    由此,通过反复修正转向,最终栈中剩下的点必然构成整个点集的凸包。

  • 关键性质:
    对于任何三个连续的点 P_{i-2}P_{i-1}P_i,如果构成右转,则 P_{i-1}  一定不在凸包边界上;如果总是保持左转,则整个路径是凸的。
    这一性质正是构造凸包的理论依据。


2. 时间复杂度推导

Graham 扫描法主要分为两个阶段:

  1. 极角排序阶段:

    • 对 n 个点按照极角排序,通常采用快速排序或归并排序,其时间复杂度为 O(nlog⁡n)。

  2. 扫描与构造阶段:

    • 利用栈对排序后的点进行扫描,判断每次转向是否为左转或右转。每个点最多入栈一次、出栈一次,故该阶段的时间复杂度为 O(n)。

综合时间复杂度:
主要耗时在排序阶段,故总体时间复杂度为O(nlog⁡n)


3. 算法步骤

步骤 1:选择参考点

  • 在所有点中选择 y 坐标最小的点作为参考点(若 y 坐标相同,则选择 x 坐标最小的点),记为 P_0

步骤 2:极角排序

  • P_0​ 为原点,计算所有其他点与 P_0 之间的极角。

  • 对所有点(除了 P_0)按照极角升序排序。

    • 注意:在极角相同的情况下,通常保留离 P_0 最近的点,或者按距离排序,确保排序结果有利于凸包构造。

步骤 3:初始化栈

  • P_0 以及排序后的前两个点依次压入栈中。

步骤 4:扫描构造凸包

  • 对于排序后的其余每个点 P_i​(从第 3 个点开始):

    1. 检查栈顶的两个点(记为 P_{top}​ 和 P_{next\_to\_top}​)与 P_i​ 构成的转向。

    2. 如果转向为右转(或共线不满足要求),则说明 P_{top} 不在凸包上,从栈中弹出该点。

    3. 重复上述检查,直到栈顶的两个点与 P_i​ 构成左转为止。

    4. P_i​ 压入栈中。

步骤 5:输出结果

  • 当所有点处理完毕后,栈中保存的点按顺序构成整个点集的凸包。


算法总结

  • 理论原理:
    通过选择参考点、极角排序以及利用栈检查转向,保证了每一次只保留凸包边界上的点。利用几何性质证明了只有左转时点才属于凸包,右转时弹出不符合条件的点。

  • 时间复杂度:
    排序阶段 O(nlog⁡n),扫描阶段 O(n) ,整体为 O(nlog⁡n) 。

  • 算法步骤:
    包含选择参考点、极角排序、栈初始化、扫描构造凸包以及输出结果等步骤,流程清晰且易于实现。

http://www.dtcms.com/wzjs/595105.html

相关文章:

  • 代做网站微信号拍卖网站开发
  • 建站模板网站天元建设集团有限公司商票
  • 公司中英文网站南京建设网站排名
  • 网站色彩搭配微信商城定制
  • 网站做蜘蛛池有用吗网站后台慢
  • 怎么给自己做网站企业门户登陆
  • 西安做视频网站公司如何创建一个企业
  • 怎样做网站的源代码怎么做淘宝联盟网站推广
  • 老鹰网网站建设建个人网站一般多少钱
  • 网站的推广方案的内容有哪些大连网站建设过程
  • 三端合一网站开发的关键技术哈尔滨高端模板建站
  • 一个最简单的产品展示的asp网站应该如何做wordpress主题破解网站
  • 深圳制作网站专业做网站编程在程序
  • vps怎么搭建网站电影订票网站开发
  • 一键建站网页打开app wordpress
  • 做网站及APP苏州新区做网站
  • 成都网站设计得多少钱学生制作个人网站
  • 西安网站推广招聘wordpress英文企业模板下载地址
  • 可以接单做网站的软件简单企业网站代码
  • 研究院 网站建设活动策划书
  • 南京建设银行网站首页网站广告推广哪家好
  • 中国建设银行官网站和字币预约建设银行官网官方网站
  • 网站建设推广渠道创建企业手机微信网站门户
  • 天台建设局网站专做健身餐的网站
  • 南和企业做网站网站制作哪家好薇
  • 新型门窗网站模板wordpress采 文章权限
  • 哈尔滨网站建设制作哪家好福州网络推广专员
  • 海淀网站建设公司电话英文网站建设公司报价
  • 个人响应式网站建设北京推广平台
  • 网站关键词百度排名在下降广州祥云平台网站建设