好文档 - 专业文书写作范文服务资料分享网站

025改进分治算法的途径2:增加预处理 

天下 分享 时间: 加入收藏 我要投稿 点赞

改进分治算法的途径2:增加预处理

例子:平面点对问题

输入: 平面点集 P 中有n 个点, n >1 输出: P中的两个点,其距离最小 蛮力算法:

C(n,2)个点对,计算最小距离,O(n2) 分治策略: P 划为大小相等的PL和PR 1. 分别计算 PL、PR中最近点对 2. 计算 PL与PR中各一个点的最近 点对

3. 上述情况下的最近点对是解 2

划分实例:n=10

PL l PR 3

算法伪码

MinDistance (P, X, Y)

输入: 点集P, X和Y为横、纵坐标数组 输出: 最近的两个点及距离

1. 若|P|?3,直接计算其最小距离 2. 排序X,Y

3. 做中垂线 l 将P划分为PL和PR 4. MinDidtance (PL,XL,YL) 5. MinDistance (PR,XR,YR)

6. ?=min(?L,?R)//?L,?R为子问题的距离 7. 检查距 l 不超过?两侧各1个点的距 离. 若小于?,修改 ?为这个值 4

跨边界处理

? d?(?/2)?(2?/3)??/4?4?/92222d 2? ?25?/36?5?/6右边每个小方格至多1个点,每个点至多比较对面的6个点,检查1个点是常数时间,O(n) 个点需要O(n)时间

5

2

025改进分治算法的途径2:增加预处理 

改进分治算法的途径2:增加预处理例子:平面点对问题输入:平面点集P中有n个点,n>1输出:P中的两个点,其距离最小蛮力算法:C(n,2)个点对,计算最小距离,O(n2)分治策略:P划为大小相等的PL和PR1.分别计算PL、PR中最近点对2.计算PL与PR中各一个点的最近点对
推荐度:
点击下载文档文档为doc格式
7wmcr99k4y1wxgu8k8be9y6ym8c7hv00mpu
领取福利

微信扫码领取福利

微信扫码分享