pdist时间复杂度和内部工作
5视图(30天)
显示旧的评论
接受的答案
沃尔特·罗伯森
2022年11月7日
你可以阅读源代码。
对于大多数距离的措施完成一个循环数组的元素,挑选一个特定的点和计算后剩下的点的距离。所以(n - 1)距离第一次,然后2 n为第二次迭代,然后n - 3到1。时间的总和,1到N - 1,这是N * (N - 1) / 2 O (N ^ 2)
你可能想要更严格定义为O (d * N ^ 2), d是点的维数。
没有先进的算法。没有四叉树,例如,可能假设减少比较cityblock低于d(维度)。没有去掉重复的地点完成(重复的检测将O (n * log (n) * d),你仍然需要O (n ^ 2)后)