2.凸包优化求解

1.减而治之(Decrease and Conquer)

插入排序

典型的减而治之算法就是插入排序方法

插入排序法: 在未排序中选择一个元素,插入到已经排序号的序列中

将凸包也采用减而治之的方法

2.In-Convex-Polygon Test

怎么判断引入的极点存在于多边形里面还是外面?

也就是需要区分出6,7,9 和 8。

判断上述的核心就是判断引入的点在凸包里面还是在外面

上述过程,先排序,再做二分算法,最后做In-Triangle test。

上述算法的问题:凸包并不是静态、一层不变的

如果采用插入排序法算法复杂度并不会降低,因为如果采用vector来存在,会存在失效的情况。实际情况复杂度还是n*n

还是采用朴素元素的方法

进而采用 to-left test 判断一个点是在内部还是外部,算法的复杂度是n*n

3.Support Line

如何将极点增加到现有的凸包上面去?

确定support line

st这一段就是Support Line/tangent

怎么确定s和t定点

4.Pattern Of Turns

s的特征:所有顶点都在它的左侧

t的特征:所有点点都在它的右侧

5.Exterior/Interior

6. Selection Sort与凸包

采用选择排序的方法,可以避免已经sorted的部分被打乱掉,但是需要知道根据什么规则来进行排序

采用类似于选择排序算法的方式,用在凸包寻找极点,缩小查找的范围

如何在当前已有的极边查找下一个极点?

可以通过角度来确定下一个极点,但是这种做法并不明智。采用 to-left-test 更加机智

起始点如何确定?

lowest-then-leftmost。 高度最低,然后最左边的点

实现

确认起点

output Sensitivity

h代表在凸包上需要行驶的步数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值