Home [Data Structure] 재귀
Post
Cancel

[Data Structure] 재귀

재귀함수

재귀(再歸) : 원래의 자리로 되돌아가거나 되돌아옴.

img

재귀는 위 이미지와 같이 계속 원 상태로 돌아오는, 거울속의 거울과도 비슷한 느낌이다.

재귀함수의 장점

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

재귀함수의 단점

  • 코드를 직관적으로 파악하기 어려움.
  • 반복하여 메서드를 호출하므로 지역변수,매개변수,반환값을 모두 process stack에 저장. 메모리 과다 사용.
  • 메서드 호출 종료 후 복귀를 워한 컨텍스트 스위칭 비용 발생.

컨텍스트 스위칭 (Context Switching)

프로세스1과 프로세스2가 존재할 때, 프로세스1이 CPU를 점유중이고 프로세스2가 대기상태이다가 얼마 후 프로세스2가 실행되고 프호세스1이 대기상태가 되는데, 이때 프로세스1이 작업하던 내용들을 PCB에 저장하고 프로세스2가 갖고있던 데이터는 PCB에서 가져온다.

이 과정, 즉 프로세스1과 프로세스2가 서로 번갈아가며 대기와 실행을 반복하는 것을 컨텍스트스위칭이라고 한다.

재귀함수 사용 조건

  1. 문제 크기를 점점 더 작은 단위로 쪼갤 수 있어야함.
  2. 재귀호출이 종료되는 시점 존재.
This post is licensed under CC BY 4.0 by the author.