재귀호출이란? : 함수가 자기자신을 호출 그러나 왜?
변수를 여러개 만들 필요X 코드가 간결해진다는 장점이 있음.
재귀함수와 반복문의 장단점
재귀함수를 사용하면 지속적으로 함수를 호출하게 되는데,
이 때 사용하는 매개변수, 지역변수, 리턴 값, 그리고 함수 종료 후 돌아가는 위치등을 지속적으로 프로세스의 Stack에 저장해야한다.
이는 선언한 변수의 값만 변경해서 사용하는 반복문과 달리 많은 메모리 사용을 의미한다.
또, 함수 호출과 복귀를 하기 위한 context switching 비용이 발생하기 때문에, 속도가 상대적으로 느리다.
즉, 오버헤드가 발생하여 속도가 느리게 된다.
재귀호출과 비슷한 수학적 귀납법 == 재귀적 증명법
수학적 귀납법 멍제 P(n)을 다음과 같이 증명하는 방법
1.N=1일 때 성립함을 보인다.
2.P(k)가 성립한다고 가정할 때, P(k+1)이 성립합을 보인다.
3.따라서 모든 자연수 n에 대하여 P(n)이 성립한다.
수학적 귀납법의 진짜 의미는 재귀적으로 증명이 가능해야함.
즉, 6일때 증명했던 방법을 5일때 증명하고... 계속
재귀호출 = 재귀적 계산법
코드를 일일이 따라가지 않고 그냥 코드만 보고 아 이것은 옳게 반환한는 코드이다를 알아야함.