我刚学习了各种排序方法的时间复杂度(例如归并排序,快速排序)。然而,我还是这个领域的初学者。我知道如果g(n)的复杂度为O(n),则该方法的整体时间复杂度将为nlogn。但是,如果g(n)的复杂度为O(n^2)
呢?
void f(n) {
if (n <= 1) return;
else {
g(n);
f(n/2);
f(n/2);
}
}
我刚学习了各种排序方法的时间复杂度(例如归并排序,快速排序)。然而,我还是这个领域的初学者。我知道如果g(n)的复杂度为O(n),则该方法的整体时间复杂度将为nlogn。但是,如果g(n)的复杂度为O(n^2)
呢?
void f(n) {
if (n <= 1) return;
else {
g(n);
f(n/2);
f(n/2);
}
}
T(n/2)
,但不适用于例如 ii)T(n/2) + T(n/3)
或 iii)T(n-1)
这样的情况。对于类似 ii) 的情况,可以使用Akra-Bazzi 方法。 - meowgoesthedog