재귀 함수


재귀 함수의 기본적 이해

-> 자기 자신을 다시 호출하는 형태의 함수


재귀를 공부해야 하는 이유

자료구조나 알고리즘을 공부할 때

재귀 함수가 유용하게 사용되어 진다.




탈출 조건의 필요성

 - 무한 재귀 호출을 피하기 위해서 (무한 루프)

 - 무한 재귀 호출 -> stack overflow


 탈출 조건의 이해

void Re(int n){

...

if(n==1)

return;

Re(n-1);

}

int main(){

int a= 5;

Re(5);

}


--> return은 값의 반환 뿐만 아니라

      함수를 빠져나올 때 쓸 수 있다.




재귀 함수 Design

- 팩토리얼 계산을 위한 알고리즘


int factorial(int n){

if(n==1) return 1;

else return n * factorial(n-1);

}




재귀함수의 효율성

속도나 메모리의 절약을 의미하는 것이 아니다.

오히려 잦은 함수 호출로 인한 속도 저하와 

stack overflow, 즉 다룰 수 있는 범위를

초과하는 문제가 발생 할 수 있다.


논리적 사고를 그대로 옮기거나

코드를 단순화 하기에 적합하다!


+ Recent posts