Я хочу, чтобы узнать временную сложность этой функции с помощью индукции п (п) = 0, если п = 0Используя индукцию, чтобы доказать временную сложность функций
е (п) = е (п - 1) + 2n - 1, если n ≥ 1 Im, используя повторную замену метода, поэтому я нашел близкую форму для f (n)
f (n) = f (n - 1) + 2n - 1 = f (n-2) + 4n-4 = f (n-3) + 6n-8 .... = f (ni) + 2^in-d
, а затем, взяв i = ni, вышел с f (n) = f (0) + 2^(n + 1) -d и может заключить, что имеет временную сложность O (2^n), так как f (0) и d - все константы.
однако я нашел ответ должен быть O (N^2) и где я сделал не так
спасибо, я знаю, где я сделал неправильно, но для константы 1, 4, 8 он не поднимается i^2, следующий член на самом деле 13,19,26 идет на 1 + 3, + 4 + 5 + 6 ... я знаю, что это не имело бы значения с окончательным ответом, но как я могу доказать, что f (n + 1) выполняется с учетом этого –
@dddsuman, который, безусловно, отличается от того, что вы изначально разместили, который был 1, 4, 9,. .. –
@PatrickRoberts Привет .. У меня есть одно сомнение в том, чтобы прописать ваше утверждение как ** Это не сложность времени функции, которая является O (n), так как это количество рекурсий, которое она имеет, это функция порядок, что означает, что «быстро он расходится» ** при чтении другого сообщения [ссылка] (http://stackoverflow.com/questions/13467674/determining-complexity-for-recursive-functions-big-o-notation#) В упомянутой ссылке говорится, что временная сложность «n^2» или «n» и т. д. Можете ли вы прояснить, как найти временную сложность для рекурсивного? Спасибо заранее – pulse