😌2022.12.06

일일 회고 111일차

할일 및 한일

경험 및 배움

자료구조 8장(재귀 호출) 공부 및 정리(50%)

오늘은 재귀 호출에 대하여 학습해보았다.

재귀 호출이란 자기 자신을 다시 호출하는 것으로, 비선형 자료구조에서 필요하기도 하고 자기 자신을 호출할 때 마다 범위가 작아지므로 복잡한 문제를 해결할 때도 쓰인다.

재귀 호출은 자기 자신을 호출하는 것을 반복하는데, 무한 루프에 빠지기 않게 하기 위한 2가지 조건이 존재한다.

  1. 호출될 때마다 문제의 범위가 줄어들어야 한다.

  2. 종료 조건이 있어야 한다.

따라서 이런 조건을 만족시켜서 재귀 호출을 구성해야 한다.

또한 재귀 호출은 운영체제에서는 실제로 스택을 사용하여서 실행한다고 한다.

함수를 호출할 때 함수에서 사용되는 모든 지역 변수와 전달된 인자등을 저장하는 공간을 활성 레코드라고 하는데, 운영체제에서는 하나의 함수가 호출되면 호출되는 함수별로 이러한 활성 레코드에 함수 관련 정보를 저장한다. 또한 도중에 다른 함수가 호출되면 문맥 변경을 통해 해당 함수의 활성 레코드로 변경시키고 각각 독립적인 활성 레코드를 생성하여 관리한다.

또한 재귀 호출은 단점은 다음과 같다.

  1. 상대적으로 속도가 느리다 : 문맥 변경에 추가적인 시간이 필요하다.

  2. 함수 호출 횟수에 제한이 있다 : 운영체제의 스택 크기에 제한이 있다.

따라서 재귀 호출과 반복 호출을 상황에 맞게 구현하는 것이 중요하다.

개선 및 목표

  • 내일도 역시 시험대비.

Last updated