我有以下一段代码。
我有以下的问题
由于我对算法和运行时间比较陌生,我不知道在回答这类最坏情况分析的问题时,是否有什么规则需要遵循,还是纯粹凭直觉?
比如C题,我会说答案是B=O(N)。
Stackoverflow不是一个作业解决平台.为了让你的问题得到像样的答案,你至少需要提供一些你尝试过的方法。
回答你的问题,如果有什么规则。
是的,有(至少是一些经验法则).你基本上需要尝试找到所有与你的输入相关的计算。
典型的例子是,你需要找到所有与你的输入相关的计算。O(n); size=n
是一个单一的for循环。
for (int i = 0; i < size; i++) {
printf("%d\n", i];
}
Whereas O(n^2)
将代表例如一个有两个嵌套for循环的算法.对于每个 i
你将贯穿 n
这让你 n*n
迭代(其中 size = n
):
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d , %d\n", i, j);
}
}