프로그래밍/자료구조

함수의 재귀적 호출

gameObject 2023. 10. 23. 23:49
728x90

이번 강의의 목표는 하노이 타워를 이해하는것이다.


특징

1. 제일 첫번째로 호출된 함수가 제일 마지막으로 종료가 되는 특징을 갖고있다.

2. 재귀에서 탈출조건을 반드시 명시해야한다. 그렇지 않으면 무한 반복하게된다.

 > 요즘은 운영체제가 너무 좋아져 가상메모리를 잘 잡아줘서 뻗는데까지 오래걸릴테지만 그래도 뻗는다.


디자인 사례

가장 대표적인 사례로 수학에서 펙토리얼이 있다.


이진 탐색 알고리즘의 재귀 구현

int BSearchRecur(int ar[], int first, int last, int targer)
{
	int mid;
	if(first > last) return -1;
	mid = (first + last) / 2;

	if(ar[mid] == targer) return mid;
	else if(target < ar[mid]) return BSearchRecur(ar, first, mid-1, target); 
	else return BSearchRecur(ar, mid+1, last, target); 
}

 

728x90