【发布时间】:2022-01-13 13:33:36
【问题描述】:
int special(const int* array, int p, int r) {
if (p == r) {
return 0;
}
int sum = 0;
for (int i = p; i < r; i += 1) {
sum += array[i];
}
int q = (p + r) / 2;
return sum + special(array, p, q) + special(array, q + 1, r);
}
我想知道这段代码的时间和空间复杂度。
我认为时间复数是 Tn = 1 + Tn/2 + Tn/2,所以答案是 Tn = 2n -1 ,但答案是 O(nlogn)
谁知道解决方案?
【问题讨论】: