반응형
알고리즘이나 함수가 수행 도중에 자기 자신을 다시 호출해서 문제를 해결하는 방법.
Ex) 팩토리얼 값 구하기
피보나치 수열
하노이 탑
순환을 멈추는 부분과 순환호출을 하는 부분으로 구성된다.
1
2
|
if (n == 1) return 1;
|
cs |
순환을 멈추는 부분
1
2
|
else return n * factorial(n - 1);
|
cs |
순환호출을 하는 부분
순환을 사용하는 알고리즘이 효율적인 경우가 있고 반복(for, while)을 사용하는 알고리즘이 효율적인 경우가 있다.
순환적인 문제에서는 순환을 사용하는 알고리즘이 구현하기 쉽다.
순환적인 문제를 반복을 사용해서 구현하면 매우 어렵지만 효울적인 경우가 있다. Ex) 거듭제곱 구하기.
반응형