【问题标题】:What is the complexity of the following algorithm which is similar to the nearest neighbour?以下类似于最近邻的算法的复杂度是多少?
【发布时间】:2014-04-10 02:46:13
【问题描述】:

以下算法的时间复杂度是多少?

输入:点 P 及其欧几里得坐标的集合

  1. 计算点的游览(使用最近邻算法,如在 TSP 问题中)

  2. 对于每个点,获取最近邻信息(相对于原始数据集中的所有点)

复杂度是 O(n) 还是 O(n²)?我们如何轻松地可视化复杂性和效率?

【问题讨论】:

    标签: time-complexity artificial-intelligence big-o complexity-theory traveling-salesman


    【解决方案1】:
      1. 对于每个点,您必须找到最近的邻居。 (你会得到第一个n)

      2. 计算两点之间的距离会得到一个因子 1,因为它在 O(1) 中运行。

      3. 因此,计算一个点与所有其他点之间的距离可以得到一个因子O(n)。

      你总共得到O(n²)。当然,在第 3 步中,您不必计算到访问点的距离,但这只会节省一个常数因子。

    1. 点A 的最近邻信息是最接近A 的点。所以你必须计算n点到所有其他点的距离,所以你也可以到这里O(n²)

    将这些加在一起得到O(n² + n²) = O(2n²) = O(n²)。

    【讨论】:

    • 嗨 AbcAeffchen,所以这两个步骤是 O(n^2),总体而言,如果这两个步骤结合起来,它仍然是 O(n^2)?非常感谢!
    • 是的。在O-notation 中总是有O(n)+O(m)=O(max(n,m))
    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2021-02-19
    • 2020-11-15
    • 2019-05-08
    相关资源
    最近更新 更多