一,凸包.----7,Graham Scan:算法描述

一,预处理
在这里插入图片描述

数据结构是两个栈,
S栈和T栈。根据先下后左的方式,找到凸包的第一个元素,放入S栈,再将该点的极角,从小到大排序,放入T栈,其中,T栈的第一个元素放入S栈,形成第一个极边。(S栈是1,2,T栈是3-8)
二,算法核心
S栈的栈顶元素和次栈顶元素连成直线,将T栈的栈顶元素弹出,如果T栈顶元素满足ToLeft测试,则把T栈顶元素压入S栈栈顶,依次类推,直到T栈顶为空,则S栈从下到上为逆时针的凸包。
在这里插入图片描述
三,最简单的案例,
在这里插入图片描述
这些点都是凸包的极点。如图从右到左,红色是S栈的栈顶元素和此栈顶元素,以及T栈比较的栈顶元素,这三个点进行ToLeft测试,绿色是S栈不进行比较的元素,蓝色是T栈不进行比较的元素,最终,T栈为空,S栈全为绿色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值