[JAVA] 재귀함수 vs 반복문Web_Backend/Java2023. 6. 20. 17:21
Table of Contents
재귀함수란?
📌 자기 자신을 호출하는 함수
재귀함수를 많이 호출하면 Call stack max 에러 발생
반복문이란?
📌 특정 구문을 특정 수만큼 반복하는 함수
재귀함수와 반복문 비교
- 실행 속도 : 반복문이 재귀함수보다 더 빠름
- 재귀함수 : 매개변수, 리턴값, 리턴시 돌아가야 하는 위치 등의 정보가 스택에 저장됨
- 반복문 : 필요 없음(오버헤드 없음)
- 가족성 : 재귀함수가 가독성이 더 좋음
- 변수 사용 : 재귀함수 사용 시 변수 사용을 줄일 수 있음
꼬리 재귀함수란?
📌 재귀함수의 오버헤드를 줄이기 위한 방법
- 일반 재귀
function factorial (number) {
if(number === 1) return 1;
return n * factorial(n - 1);
}
- 꼬리 재귀 : 재귀함수를 호출한 다음 추가적인 연산을 하지 않음
- 리턴시 돌아가야 하는 위치를 스택에 가지고 있지 않아도 됨
function factorial (number, result = 1;) {
if(number === 1) return result;
return factorial(n - 1, n * n - 1);
}
'Web_Backend > Java' 카테고리의 다른 글
[JAVA] System.out.print~의 사용을 지양해야만 하는 이유를 알아보자(feat,, IO, 휘발성, 출력레벨, 성능저하..) (2) | 2024.01.08 |
---|---|
[Java] collectionFramework_Set_HashSet이란? (0) | 2023.09.18 |
[JAVA] GC(Garbage collector, Garbage collection) (0) | 2023.06.15 |
[JAVA] Stream API (0) | 2023.05.26 |
[JAVA] String, String Builder, String buffer 차이 (0) | 2023.03.19 |
@Yanako :: Yana's coding story
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!