재귀를 한번만 호출할 때: f(N). 두번 이상 호출할 때: (재귀 횟수)^{f(N)}
아니 근데 직접 유도해서 푸는 법을 알려주는 게 좋겠다.
봐봐. T(n) = 1 + T(n - 1) 인 거 동의? 여기서 1은 return하는데 드는 비용인 거고, T(n - 1)은 재귀 호출했으니 그 함수 호출에 대한 비용인 거지.
T(n - 1)은 또 1 + T(n - 2)니까. T(n) = 1 + 1 + T(n - 2)가 돼고, 재귀적으로 적용하면 T(n) = 1 * k + T(n - k) 라는 걸 알 수 있다.
곧, T(n) = 1 * (n - 1) + T(1) 이라는 거고. T(1)은 위에서 n <= 1 이라는 base case에 걸리므로 return만 하기 때문에 T(1) = 1임. 곧, T(n) = 1 * (n - 1) + 1 = n임. 따라서 O(N)이야.
T(n)=1+n+T(n-1) 여기서 +n어디로 사라짓는지 모르겟네요 ㅠ
T(n) = 1 * k + T(n - k) 여기까진 이해되는데 어케T(n) = 1 * (n - 1) + T(1) 가되는지 모르겟어요 ㅠ
T(n) = 1 + T(n-1) = 1 + 1 + T(n-2) = 1 + 1 + 1 + T(n-3) = ... = 1 * (n-1) + T(1) = 1 * (n-1) + 1 = n
k에 n - 1을 넣어봐.
T(n) = 1 * (n-1) + T(n - (n-1)) = 1 * (n-1) + T(1) 임.
아하 그래서 T(1)은 조건식땜에 1이고 결과적으러 빅오 n
재귀를 한번만 호출할 때: f(N). 두번 이상 호출할 때: (재귀 횟수)^{f(N)}
아니 근데 직접 유도해서 푸는 법을 알려주는 게 좋겠다.
봐봐. T(n) = 1 + T(n - 1) 인 거 동의? 여기서 1은 return하는데 드는 비용인 거고, T(n - 1)은 재귀 호출했으니 그 함수 호출에 대한 비용인 거지.
T(n - 1)은 또 1 + T(n - 2)니까. T(n) = 1 + 1 + T(n - 2)가 돼고, 재귀적으로 적용하면 T(n) = 1 * k + T(n - k) 라는 걸 알 수 있다.
곧, T(n) = 1 * (n - 1) + T(1) 이라는 거고. T(1)은 위에서 n <= 1 이라는 base case에 걸리므로 return만 하기 때문에 T(1) = 1임. 곧, T(n) = 1 * (n - 1) + 1 = n임. 따라서 O(N)이야.
T(n)=1+n+T(n-1) 여기서 +n어디로 사라짓는지 모르겟네요 ㅠ
T(n) = 1 * k + T(n - k) 여기까진 이해되는데 어케T(n) = 1 * (n - 1) + T(1) 가되는지 모르겟어요 ㅠ
T(n) = 1 + T(n-1) = 1 + 1 + T(n-2) = 1 + 1 + 1 + T(n-3) = ... = 1 * (n-1) + T(1) = 1 * (n-1) + 1 = n
k에 n - 1을 넣어봐.
T(n) = 1 * (n-1) + T(n - (n-1)) = 1 * (n-1) + T(1) 임.
아하 그래서 T(1)은 조건식땜에 1이고 결과적으러 빅오 n