python中是否有任何有效的库函数来查找最近/最远的一对点?输入是位于边大小为 1 的 k 维立方体中的点列表。为了找到最接近的点,以下代码花费了太多时间。TC: O( n**2 * k ) 其中 n 是输入的大小。就我而言,输入 n 约为 4000,k 的值约为 300。
def euclid_dist( p1, p2 ):
val = 0
for i in range(len(p1)):
val += (p1[i]-p2[i])**2
return val
def find_close_cluster( points ):
ans1 = 0
ans2 = 1
min_dist = 1000000000000
for i in range( len(clusters) ):
for j in range( i+1,len(clusters)):
current_dist = euclid_dist(clusters[i],clusters[j])
if( current_dist < min_dist ):
ans1 = i
ans2 = j
min_dist = current_dist
return ( ans1, ans2 )