中科大软院算法导论最近点对算法_C++.docVIP

  • 4
  • 0
  • 约6.06千字
  • 约 6页
  • 2016-11-30 发布于安徽
  • 举报

中科大软院算法导论最近点对算法_C++.doc

中科大软院算法导论最近点对算法_C++.doc

实验四 求最近点对算法 1.算法设计思路: 设共有n个点,找其中距离最近的两点及其距离。 (1)蛮力法: 蛮力法的思路是把所有点之间距离比较找出中间最小的。先假设最短距离是第一个元素和第二个元素的距离,然后求第一个元素与其后的(n-1)个元素各自的距离,若比之前记录的最短距离小则记录当前值···求第i个元素与其后的(n-i)个元素各自的距离,记录之前所得到的所有距离中的最小值,直到计算到第(n-1)个元素与第n个元素的距离,此时记录的距离即为这n个元素中的最短距离。 (2)分治法: 分治法是把一个大的问题划分成相似的小问题,采用递归的思想。找中线把n个元素分成左右两部分元素分别求得两边的最短距离,然后取两者中的最小者记为l,在中线两边分别取l的距离,记录该距离范围内点的个数,中线左边有L个元素,右边有R个元素,求左边元素到右边元素的距离看其是否小于之前记录的最短距离,小则记录下来,此时的右边元素只取y值和左边元素y值距离小于l的(减少循环次数)。循环结束即可找到最小的距离。 2.程序代码: #includeiostream #includecstdlib #includectime #includecmath using std::cout; using std::endl; #define N 5

文档评论(0)

1亿VIP精品文档

相关文档