算法时间复杂度。

时间:2018-05-23 02:31:22

标签: time-complexity

如果我们第一次遍历整个链表(比如单链表)那么时间复杂性渐近地来自O(n)[其中n是no。如果我们重复它,那么元素存在同样的事情。 (比如200)时间但我们仍然代表时间复杂度O(n)本身然后我的问题是 1.为什么我们不考虑上述之间的差异(因为第二个将比第一个更多地遍历)并且我们以渐近的方式表示它。因为我们使用时间复杂度主要参数来进行算法之间的比较。

2 个答案:

答案 0 :(得分:1)

让我们说算法A是"一次遍历列表"。

让我们说算法B是"遍历列表200次"。

它们都是线性的,也就是说,它们的时间复杂度在 O(n)中。为什么?如果您将输入列表的大小加倍,

  • 算法A的使用时间是以前的两倍。
  • 算法B的使用时间是以前的两倍。

这是线性时间背后的直觉。

您可以随时插入Big-O的正式定义,以证明"遍历列表200次"是复杂的线性(你知道,找到一个常数k使得所有n>一些N,等等等等等等)。渐近复杂性仅关注特定算法在其输入大小增长时的行为方式。因此,我们不需要将算法A与算法B进行比较来说明算法B的渐近时间复杂度。

答案 1 :(得分:0)

O(n)为函数可以采用的最大时间提供上限,因此可能它们都采用不同的时间,但它们的上限保持不变。大字符号根据它们的增长率表征函数:不同的函数与相同的增长率可以用相同的O表示法表示。

相关问题