有人可以帮助理解big(O)函数

问题描述 投票:-2回答:1

我是算法和数据结构的新手。我参加了关于算法和数据结构的课程。所以我不明白的是

function foo(n, m):
  i := 0
  While i < 2*n:
    j := 6
    While j < m/3:
      j = j + 1
    i = i + 1

因此,在课程中有一些测验,我不知道如何回答这个问题,或者我的意思是如何计算它。在这个问题上,我有一些选择。

a. O(n)
b. O(m)
c. O(n^2)
d. O(nm)
e. O(1)

所以我需要的不仅仅是答案,我真正需要知道的是如何知道答案或如何计算函数来知道答案。如果您解释如何做,我将很高兴;如果您提供资源来学习此主题,我也将很高兴。

algorithm data-structures
1个回答
-1
投票

Big(O)是最坏的情况,就程序的运行时间而言。专注于每一行代码。在第二行中,i=0占用一个时间单位,而i的循环将运行n次循环,依此类推。因此,我认为此代码的O(n)。而O(nm)用于数组,例如当我们有两个数组xy时。

© www.soinside.com 2019 - 2024. All rights reserved.