作业5-最近对问题

  1. 问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
    设P1(x1, y1),P2(x2, y2),P3(x3, y3), P4(x4, y4) …,是平面上n个散列点构成的集合S,最近对问题就是找出集合S中距离最近的点对。
  2. 解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]
    将集合S分成两个子集S1和S2,每个子集中有n/2个点。然后在每个子集中递归地求其最接近的点对,在求出每个子集的最接近点对后,有两种可能情况:1集合S 中最接近的两个点都在子集S1或S2中2这两个点分别在S1和S2中。⑵对于第一点递归求解,如果最近点对分别在集合S1和S2中,那就分别取s1s2中最靠近中线的点,与中位点两两比较,并与子集S1或S2的最小路径对比,得出答案。
  3. 设计[核心伪代码]
    在这里插入图片描述
  4. 分析[算法复杂度推导]
    假设n是2的幂
    算法运行时间的递归式T(n)=2T(n/2)+f(n)
    因此算法时间复杂度为O(nlogn)
  5. 源码[github源码地址]
    https://github.com/hackkkkkk/calculate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值