摘要:
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 5 6 void swap(int &x, int &y) 7 { 8 int tmp = x; 9 x = y; 10 y = tmp; 11 } 12 13 void insert_sort(int A[], int p, int r) 14 { 15 int i,j; 16 int key = 0; 17 for (i=p+1; i<=r; ++i) 18 ... 阅读全文
摘要:
原文链接:http://www.2cto.com/kf/201207/139308.html问题:给定平面上N个点的坐标,找出距离最近的两个点。解法:我们先对N个点的x坐标进行排序,排序我们使用最坏复杂度O(n*logn)的快速排序方法,在排序的过程中minDifferent会递归计算出左右两边的最小距离,再用其中的较小值minum得到以中位数点附近的带状区域[p[median+1].x-median, p[median].x+median],对带状区域的点按照y坐标排序,对带状区域的每个点只需计算最多7个点,就能得到所有可能小于minum的点对。[cpp] #include <iost 阅读全文