java经纬度凸包graham_算法----凸包Graham算法(基于极角)

题目:Hdu1392 Surround the Trees

cdf0b7baef81

image.png

cdf0b7baef81

image.png

简易描述:在坐标上求能将所有点都包上的点集,并计算他们的长度

算法步骤:

original[102]指原始输入的数据的数组。

Convex [102]在凸包上的点的数组。

1、首先判断如果original中元素个数,如果是1,2单独处理,否则进入2。

2、选出最左下角的元素,将original数组按y坐标排序,得到Convex[0]=original[0]。

3、将original[]剩下的n-1个元素按极角进行排序(相对于Convex[0]的arctan值)。

4、Convex[]中初始时有两个元素,Convex[0]和Convex[1](最小的极角那个点一定在凸包上)。

5、写一个while,终止条件为扫描original到最后一个点。具体while操作见6。

6、取Convex[]最后两个元素,与当前original[i]进行叉积判断,如果三点是逆时针方向则original[i]加入到Convex[]。

否则将Convex[]最后一个元素删掉(因为不满足),将origi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值