分治法--最接近点对问题

空间二维平面上n个点,找到其中距离最近的一对点

分治法思想:用中位线将二维平面尽可能的等分为两个点集,点集最好有一样的点数目

然后将问题分解为:从左边点集找最小min1,右边点集最小min2,然后再找两边的相互的最小

假如直接这样解相互的算法复杂度仍然是O(n2),跟穷尽法一样,得找到相互得规律,然后减少算法复杂度

如果存在相互中是最小的点,那么必定有dist<min(min1,min2)=alpha,这只是在一个小区间内成立的,仔细的研究这个区间,发现,区间大小在中位线左右alpha,上下alpha内,而这个区间最多会有6个点,也就是说每个点最多比对6个点就可以得到结果,这样最后的算法复杂度可以降到O(nlogn)

分治法可以用做一个解决问题的思路,比如赛程安排,也可以作为一种提高效率的方法,但是假如要提高效率,对于其中的步骤必须有好的解法才行,比如这个算法中的点的分析,还有比如矩阵strassen乘法的一次减少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值