我有两个算法A和B,它们在逻辑图上工作,我想比较它们在时间上的效率。
当我计算出两种算法的时间复杂度时,我发现:

Time Complexity of A: O(2*n*n)
Time Complexity of B: O((n*n)/2)

根据维基百科的说法,http://en.wikipedia.org/wiki/Time_complexity
当计算时间复杂度时,我们忽略系数,得到:
Time Complexity of A: O(n^2)
Time Complexity of B: O(n^2)

我做的第二步是实验性地计算每种算法对不同大小的图形所需的时间下面,X轴代表图中节点的数目,y轴是秒的时间。
如您所见,对于大型图,这两种算法有很大的不同。我的问题是:这合理吗?是否有可能有两个算法具有相同的时间复杂度,但在实践中有这么大的时间差异?谢谢您。

最佳答案

是的,这是绝对合理的。计算复杂性并不能说明一个算法到底有多快,而是显示了它对输入大小变化的反应。
这不是巧合,渐近复杂性被称为渐近,而不是“相同”。

07-24 18:36
查看更多