Ну, в реальном мире вы не получите ответ по понятным причинам, но по математике ... почему бы и нет.
Я запишу уравнение времени функции:
T(n) = n-1 * T(X)
T(X)
- время для внутреннего цикла.Я потрачу на это: X1
= начальное значение x
(в данном случае 1
)
T(X) = T(X1 * 2) + 1 = T(X1 * 4) + 2 = ... = T(X1 * 2^j) + j
Конечное условие этого цикла - когда j >= X1 * 2^j + 1
, поэтому мы хотим решить:
j >= X1 * 2^j -> j = 2^j -> j <= log2(j).
Вышеупомянутое уравнение не имеет решения в этом диапазоне набора натуральных чисел, но в целочисленном наборе оно легко решается с помощью -1
(фактически любое целое число меньше 0
).
Итак, временная сложность для T(n)
будет (n-1) * (-1) = 1 - n
.
Я не знаю, что в этом полезного, но я надеюсь, что это поможет вам.