- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析(十)
扫除线的数据结构定义 扫除线一般要维护下列两组数据: 1)扫除线状态(sweep-line status):即与扫除线相交的物体之间的关系; 2)事件点(event-point schedule):是一个从左向右的x坐标的排列,这些x坐标记录了扫除线状态发生变化的位置。 e f g h i w z v o 在本问题中,每条线段的端点都是事件点,因为当扫除线进入(离开)任何端点处,都将引起扫除线状态的改变。而这,通过增加x坐标,从左向右对线段的端点进行排序即可得线段问题的所有事件点。 如果两个或多个端点位于同一条垂直线上,若y坐标不同,则有坐标小的排在前面,若y坐标也相同(即相交于同一点),则看另一端点的x坐标,小的放在前面。 a b c d e f a b a b db c d c d c e e h f h f 基于上述定义,根据事件点调度序列检查线段。 当扫除线遇到线段的左端点时,就把该线段插入到扫除线状态中; 当扫除线遇到线段的右端点时,就把它从扫除线状态中删去; 当两条线段在全序中第一次变为连续(连续排列在一起)时,就检查它们是否相交(注:非连续排列在一起的线段是不会相交的)。 扫除线状态是一个全序T,定义T上的操作如下: INSERT(T,s):把线段s插入T中; DELETE(T,s):把线段s从T中删除; ABOVE(T,s):返回T中紧靠线段s上面的线段; BELOW(T,s):返回T中紧靠线段s下面的线段。 输入n条线段,运用红黑树,可以在O(logn)的时间内执行上述操作。 判断线段集合中线段相交的过程 ANY-SEGMENTS-INTERSECT(S) //S为n个线段的集合,如果找到S中任一对线段相交就返回TRUE;否则,若S中没有任何线段相交,则返回FALSE。全序T由一棵红黑树实现。// T←Φ sort the endpoints of the segments in S from left to right,breaking ties by puting left endpoint before right endpoints and breaking further ties by putting points with lower y-coordinates first for each point p in the sorted list of endpoints do if p is the left endpoint of a segment s then INSERT(T,s) if(ABOVE(T,s) exists and intersects s) or (BELOW(T,s) exists and intersects s) then return TRUE endif if p is the right endpoint of a segment s then if(both ABOVE(T,s) and BELOW(T,s) exists and ABOVE(T,s) intersects BELOW(T,s) then return TRUE DELETE(T,s) endif endfor return FALSE END ANY-SEGMENTS-INTERSECT a b c d e f a b a b db c d c d c e e h f h f 例: a b c d e f a a b a c b da c b d c b e d c b e d b time ANY-SEGMENTS-INTERSECT的执行过程。每条虚线都是一个事件点处的扫除线,每条扫除线下的线段名排序为for循环结束时的全序T,在该循环中,要对各对应的事件点进行处理。当线段c被删除时,即可发现线段d和b相交。 10.3 凸包问题 1.关于多边形的概念 1)多边形:是平面上一组首尾相连的折线段所构成的封闭曲线称为多边形。 2)边:构成多边形的折线段称为多边形的边。 3)顶点:连接两条连续边的点称为顶点。 。 边 顶点 4)简单多边形:内部没有交叉的多边形称为
您可能关注的文档
- 第四讲 模型设定和数据处理.ppt
- 第四讲 理性与非理性.ppt
- 第四节 澳大利亚(第2课时).ppt
- 第四讲 编辑与出版.ppt
- 第四讲 以人为本——人本管理.ppt
- 第四节__流体压强与流速的关系.ppt
- 第四讲2 案例分析.ppt
- 第四讲 营销策划创意3.0.ppt
- 第四讲+并列句和状语从句的写作(共33张PPT).ppt
- 第四讲_入团的条件、团员的权利和义务.ppt
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
原创力文档


文档评论(0)