SMALL
재귀호출은 함수가 자신을 다시 호출하는 알고리즘 기법입니다. 재귀 호출은 알고리즘을 단순화하고 명확하게 할 수 있으며, 탐색, 정렬 등 다양한 문제에 활용할 수 있습니다.
재귀호출의 기본 구조는 보통 두 부분으로 이루어집니다:
1. 기본 경우(Base case): 함수가 더 이상 재귀호출을 하지 않고 결과를 직접 반환하는 경우입니다. 이는 무한 재귀를 방지하는 역할을 합니다.
2.재귀 경우(Recursive case): 함수가 자기 자신을 다시 호출하는 경우입니다.
다음은 자바로 구현한 팩토리얼 계산을 위한 재귀호출 예제입니다


위의 factorial 함수에서, 기본 경우는 n이 0일 때입니다. 이 경우 함수는 1을 반환하고 재귀호출을 중지합니다. 재귀 경우는 n이 0이 아닐 때입니다. 이 경우 함수는 n * factorial(n - 1)를 계산하여 반환하며, 이 과정에서 함수는 자신을 재귀적으로 호출하게 됩니다.
재귀 호출을 사용할 때는 주의할 점이 있습니다. 무한 재귀를 방지하기 위해 항상 하나 이상의 기본 경우가 필요하며, 재귀 호출을 할 때마다 문제의 크기가 줄어들어 결국 기본 경우에 도달하게 해야합니다. 또한, 재귀 호출은 메모리 스택을 사용하므로 너무 많은 재귀 호출은 스택 오버플로우를 일으킬 수 있습니다.
LIST
'JAVA > Algorithm' 카테고리의 다른 글
더블 링크드 리스트(Doubly Linked List) (0) | 2023.05.25 |
---|---|
단방향 연결 리스트( Singlely Linked List) (0) | 2023.05.24 |
자바 알고리즘 Queue (0) | 2023.05.17 |
스택(Stack) (0) | 2023.05.16 |
빅오 표기법(Big O notation) (0) | 2023.05.16 |