比较给定步骤的两种算法的复杂性

时间:2016-09-07 01:11:06

标签: algorithm time-complexity big-o complexity-theory

假设您有一个大小为n的数据集和两个处理该数据的算法 以同样的方式设置。算法A采用10个步骤来处理数据集中的每个项目。算法B以100个步骤处理每个项目。复杂性会是什么? 是这两种算法吗?

我从问题中得出算法A完成每个项目的处理,算法B的复杂度的十分之一,并使用问题的接受答案中提供的图表:What is a plain English explanation of "Big O" notation?我得出的结论是算法B的复杂度为O(n ^ 2),算法A的复杂度为O(n),但在没有实现的情况下,我很难得出结论。

1 个答案:

答案 0 :(得分:4)

在开始对时间复杂性做出任何结论之前,您需要多个数据点。算法A和算法B之间的10步和100步的差异可能有很多不同的原因:

  1. 加法常数差:无论输入如何,算法A总是比算法B快90步。在这种情况下,两种算法都具有相同的时间复杂度。

  2. 标量乘法差:无论输入如何,算法A总是比算法B快10倍。在这种情况下,两种算法都具有相同的时间复杂度。

  3. 你提出的案例,其中B是O(n ^ 2),A是O(n)

  4. 许多其他可能性。