본문 바로가기

공부 자료/자료구조|알고리즘

[자료구조/알고리즘] 재귀

재귀함수

  • 재귀 : 원래의 자리로 되돌아가거나 되돌아옴
  • 재귀함수 : 자기 자신을 호출하는 함수

사용 조건

  • 문제의 크기를 점점 작은 단위로 쪼갤 수 있어야 함
  • 호출 종료 시점이 존재해야 함 (존재하지 않을 경우 무한 루프에 빠질 수 있음)

장점

  • 여러개의 반복문을 사용하지 않아 코드가 간결해지고 수정이 용이
  • 변수를 여러개 사용할 필요가 없음

단점

  • 코드의 흐름을 직관적으로 파악하기 어려움 (특히, 반복이 많을수록 결과 예측이 어려워짐)
  • 메서드를 반복 호출하며 매개변수/지역변수/변환값을 모두 저장하기 때문에 더 많은 메모리를 사용
  • 메서드 호출 및 종료 후 복귀를 위한 컨테스트 스위칭 비용이 발생함

분석 방법

1) 상향식 분석(bottom-up analysis)

  : 0에서부터 시작하여 올려나감

  : 아래쪽부터 쌓아 올리며 분석하는 방법

2) 하양식 분석(top-down analysis)

  : 가장 위에서 시작하여 종료 조건을 만족할때까지 진행

  : 가장 위쪽에 위치한 상자의 메서드를 호출하는 것부터 시작하여 계단식으로 자세히 조삭해 나가는 분석 기법