반응형
[ 알고리즘 ] 함수의 재귀적 호출의 이해
재귀함수란 다음과 같이 함수 내에서 자기 자신을 다시 호출하는 함수를 의미합니다.
완료되지 않은 함수를 다시 호출하는 것이 가능한가요?
네 가능합니다.
아래 그림으로 더욱 쉽게 재귀함수의 흐름을 파악해봅시다.
다음 그림은 Recursive 함수가 호출되면, Recursive 함수의 복사본이 만들어집니다.
그리고 그 복사복인 실행되고, 그 안에서 Recursive 함수가 호출가 호출되면 또 복사본이 만들어집니다.
실제로 함수를 구성하는 명령문은 CPU로 이동(복사)되어서 실행됩니다.
따라서 이 재귀함수 역시 얼마든지 CPU로 이동이(복사가) 가능합니다.
그럼 위의 예제의 호출 결과는 어떨까요?
Recursive 함수에서 문자열 출력하고, Recursive 함수 호출하고,
다시 문자열 출력, Recursive함수...
네 끝이 없습니다. '재귀의 탈출 조건'이 없기 때문입니다.
그래서 다음과 같이 코드를 추가할 수 있습니다.
Recursive 함수에 0이 전달되면 '재귀의 탈출 조건'이 성립되어 함수가 반환하기 시작합니다.
------------------------------
------------------------------
반응형
'컴퓨터 공학 > Algorithm' 카테고리의 다른 글
[ 알고리즘 ] 재귀의 활용_피보나치 수열 구현(C언어) (391) | 2020.07.08 |
---|---|
[ 알고리즘 ] 재귀함수의 디자인 사례_팩토리얼 구현(C언어) (395) | 2020.07.08 |
[ 알고리즘 ] 빅-오 표기법이란? (383) | 2020.07.06 |
[ 알고리즘 ] 이진 탐색이란? 시간의 복잡도 계산하기 (2245) | 2020.07.05 |
[ 알고리즘 ] 순차 탐색(Linear Search) 이란? 시간 복잡도 계산하기 (380) | 2020.07.04 |
댓글