我是算法和数据结构的新手。我参加了关于算法和数据结构的课程。所以我不明白的是
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)
所以我需要的不仅仅是答案,我真正需要知道的是如何知道答案或如何计算函数来知道答案。如果您解释如何做,我将很高兴;如果您提供资源来学习此主题,我也将很高兴。
Big(O)是最坏的情况,就程序的运行时间而言。专注于每一行代码。在第二行中,i=0
占用一个时间单位,而i
的循环将运行n次循环,依此类推。因此,我认为此代码的O(n)。而O(nm)用于数组,例如当我们有两个数组x
和y
时。