반응형
꼬리 재귀 - Tail Recursion
재귀 호출이 끝난 후 현재 함수에서 추가 연산을 요구하지 않도록 구현하는 재귀의 형태
함수 호출이 반복되어 스택이 깊어지는 문제를 컴파일러가 선형으로 처리하도록 알고리즘을 바꿔 스택을 재사용할 수 있게 됩니다. 꼬리 재귀를 사용하기 위해서는 컴파일러가 이런 최적화 기능을 지원해야 합니다.
가장 중요한건 현재 함수에서 추가 연산을 하면 안된다는 겁니다.
목차
관련 글
순환 호출 (circular call) - 재귀적 호출 (recursive call)
https://steadiness-dev-invest.tistory.com/84
파이썬에서 에러 발생 시 (maximum recursion depth exceeded in comparison)
https://steadiness-dev-invest.tistory.com/85
특징
- 재귀 호출이 끝난 후 현재 함수에서 추가 연산을 하지 않으면 스택이 깊어지는 게 아닌 재사용을 하게 됩니다.
- 일반 재귀 호출에 비해 빠른 속도로 실행됩니다.
- 메모리 문제에서 비교적 자유롭습니다.
- 구현이 조금 복잡합니다.
예시 코드
마무리
정리를 하다보니까 이어서 계속 정리해야 되는 개념이 나오네요.
공부는 끝이 없네요 ㅎㅎ..
그럼이만~
'용어정리 > IT' 카테고리의 다른 글
프레임워크 , 라이브러리, API (0) | 2022.08.25 |
---|---|
객체지향이란 무엇인가 (0) | 2022.08.13 |
순환 호출 (circular call) - 재귀적 호출 (recursive call) (0) | 2021.06.03 |