【发布时间】:2021-03-18 05:06:59
【问题描述】:
我得到以下函数,其中g 是在 Θ(n²) 中运行的其他函数。这个函数的最佳时间复杂度是多少?
void f(int n) {
if(n % 2 == 0) {
return;
} else {
g(n);
}
}
很明显,如果 n 是偶数,函数会在恒定时间内运行,这让我说 Θ(1),但我认为这不是正确答案,因为我不认为这是定义渐近紧界的方式.
我在 SO 上查看了很多关于大 theta 表示法和最佳案例分析的类似问题,但它们都与长度为 n 输入的数组有关,而不仅仅是一个整数。我认为最好的案例分析在这些情况下是有意义的,因为它取决于数组中的元素。
但是,对于这个问题,除了g 之外,在确定复杂性方面似乎没有类似的“数组中的元素”,其复杂性是固定的。
这使我得出结论,实际的最佳情况时间复杂度是 Θ(n²)。我的理解正确吗?是 Θ(n²) 还是 Θ(1)?
【问题讨论】:
-
最佳情况复杂度为 Θ(1),最坏情况复杂度为 Θ(n^2)。
标签: algorithm time-complexity complexity-theory