[Algorithm] 재귀함수 (Recursion)

2024. 12. 4. 15:00·Algorithm/Basic

재귀함수 (Recursion)

  • 함수 정의에서 자기 자신을 재참조하는 함수이다.
  • 큰 덩어리를 작은 덩어리로 나누어 풀 때 사용한다.

 

재귀함수 형태

int Recursion(int n) { 
    1. 기저 사례 (종료조건)
    2. 작업 수행
    3. 재귀 호출
}
int factorial(int n) { 
    if (n === 1) { 
        return 1; 
    } 
    return n * factorial(n-1);
}

 

재귀함수 호출에 따른 스택 변화

  • 함수 호출시 새로운 스택프레임이 생성되며 메모리 소모가 발생한다.
  • 처음 생성된 스택프레임은 마지막 재귀함수가 종료되기 전까지 유지된다.
  • 호출이 많을 경우 스택영역을 벗어나 스택 오버플로우가 발생할 수 있다. (오버플로우가 발생하면 프로그램은 종료된다.)

 

 

재귀함수의 장단점

  • 장점
    • 코드가 간결하다.
  • 단점
    • 재귀함수 호출이 많을 경우, 큰 메모리 소비와 속도 저하가 발생한다.
    • 똑같은 결과를 반복처리하는 Overlapping Solve Problems이 발생한다.

 

참고
 

재귀함수의 장점과 단점 그리고 해결책

재귀(Recursion)란?

catsbi.oopy.io

 

'Algorithm > Basic' 카테고리의 다른 글

[Algorithm] 완전 탐색  (0) 2025.03.11
[Algorithm] 조합 (Combination)  (2) 2024.12.05
[Algorithm] 순열 (Permutation)  (1) 2024.12.04
'Algorithm/Basic' 카테고리의 다른 글
  • [Algorithm] 완전 탐색
  • [Algorithm] 조합 (Combination)
  • [Algorithm] 순열 (Permutation)
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Algorithm
    본캠프
    내일배움캠프
    소프트 레퍼런신
    사전캠프
    assetmanager
    디자인 패턴
    actor
    unrealengine
    퀘스트
    GameplayEffect
    component
    액터
    DesignPattern
    Design Pattern
    c++
    gas
    알고리즘
    Til
    AI
    KPT회고
    Animation
    게임동기화
    unreal
    basic
    디자인패턴
    Implement
    tsoftobjectptr
    하드 레퍼런싱
    레벨디자인
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[Algorithm] 재귀함수 (Recursion)
상단으로

티스토리툴바