※ RECURSION?
- 자기 자신을 다시 호출하는 메소드(재귀함수)
- 무한루프에 빠질 수 있으므로 적어도 하나의 breaking point를 만들어준다. (Base Case)
- recursion을 반복하다보면 결국 base case로 수렴해야 한다(Recursive Case)
※ 예제
- Factorial(n!)
public class factorial {
public static void main(String[] args) {
int iResult = fn_factorial(5);
System.out.println(iResult);
}
public static int fn_factorial(int n){
if(n==1){
return 1;
}else{
return n*fn_factorial(n-1);
}
}
}
- Fibonacci Number
public class fibonacci {
public static void main(String[] args) {
int iResult = fn_fibonacci(5);
System.out.println(iResult);
}
public static int fn_fibonacci(int n){
if(n<2){
return n;
}else{
return fn_fibonacci(n-1) + fn_fibonacci(n-2);
}
}
}
*위의 함수는 피보나치의 수열 중 n번째의 숫자는 무엇인가를 구하는 함수이다.
'플밍 is 뭔들 > 알고리즘' 카테고리의 다른 글
Recursion의 응용 [Counting Cells in a Blob] (0) | 2017.09.11 |
---|---|
Recursion의 응용 [미로찾기1] (0) | 2017.09.11 |
순환(RECURSION)의 개념과 기본 예제3 (0) | 2017.09.11 |
순환(RECURSION)의 개념과 기본 예제2 (0) | 2017.09.11 |
알고리즘의 분석, 공간 복잡도, 시간복잡도 (0) | 2017.09.11 |