Developer Cafe

재귀 알고리즘 본문

자료 구조/누구나 자료 구조와 알고리즘

재귀 알고리즘

개발자 카페 2021. 3. 7. 01:58
728x90

컴퓨터 과학에 있어서 재귀는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다.

 

function ex() {
	ex();
}

 

재귀에서 메서드가 반복되지 않는 경우를 기저 조건(중단 조건) 이라 부른다.

 

 

재귀를 다루는 컴퓨팅 사고

function factorial(number) {
	if (number === 1) {
    	return 1;
    } else {
    	return number * factorial(number - 1);
    }
}

factorial(3);

위의 코드를 실행시키면 일어나는 컴퓨팅 사고

1. factorial(3)이 먼저 호출된다.

2. factorial(2)가 두 번째로 호출된다.

3. factorial(1)이 세 번째로 호출된다.

4. factorial(1)이 먼저 완료된다.

5. factorial(2)가 factorial(1)의 결과를 토대로 완료된다.

6. 끝으로 factorial(3)이 factorial(2)의 결과를 토대로 완료된다.

 

무한 재귀가 있을 때 프로그램은 컴퓨터 메모리에 더 이상 공간이 없을 때까지 같은 메서드를 호출 스택에 푸시한다. 이로 인해 발생하는 오류는 스택 오버플로라고 부른다.

728x90
Comments