n<=10000个点,求欧几里德距离最小的一对点. 经典分治,把这些点按x排序,分成两半,每边分别算答案,答案是左边的最小,右边的最小,左右组起来的最小三者的最小.发现只有左右组的有点难写. 假设左右两半各自的最小中的最小是d,左半边最右的点横坐标是X1,右半边最左的点的横坐标是X2.那么只需要坐标在X1-d到X2+d的范围内的点找更小的距离.如下图. 极端地,x1和x2相等时,x1上的某一个点最多可能和多少点组更小的距离呢? 假如左半边上在x1上有一个大大的点,那么右半边的点只有在圆形区域内才…