Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 해커톤
- this
- 클라이언트
- 제일어려워
- array
- 공부
- 코드스테이츠
- 개발
- underscores
- 취업
- 초보
- Instantiation Patterns
- 연습
- react
- JS
- 코딩
- underbar
- vscode
- DOM
- 자바스크립트
- 엔퀸즈
- JavaScript
- ftech
- 일상
- 리액트
- nqueens
- 포스기
- method
- grpahQL
Archives
- Today
- Total
analogcoding
Recursion 정의 + 예제 본문
재귀함수란 ?
함수는 함수 안에서 자기 자신을 다시 호출하는 것.
재귀함수를 사용하는 이유
1. 알고리즘 자체가 재귀적으로 표현할 때 가독성이 좋다.
2. 변수 사용을 줄여 준다.
재귀함수의 단점
메모리를 많이 차지하며 성능이 반복문에 비해 느리다.
재귀함수의 사용예제
Factorial
1부터 정수 n까지의 정수를 모두 곱하는 것.
반복문을 사용한 factorial
function factorial(number) {
let result = 1;
for (var i = number; i >= 1 ; --i ){
result *= i;
}
return result;
}
// factorial(5) 의 경우 i는 1,2,3,4,5 이므로 1*2*3*4*5 = 120.
재귀함수를 사용한 factorial
function factorial(number) {
if(number == 1) {
return number;
} else {
return number * factorial(number-1);
}
}
// factorial(5) 의 경우 5 * factorial(4)
// 다시 factorial(4) 가 실행 , factorial(5) * factorial(4) * factorial(5) ...
// 1이되면 종료.
fibonacci
0, 1로 시작해서 다음 수는 앞의 두 수의 합이 된다. Ex) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
var fibonacci = function(number) {
if (number < 2) {
return number;
} else {
return fibonacci(number - 1) + fibonacci(number - 2);
}
};
'Study JS for me > Algorithm' 카테고리의 다른 글
recursion 예제연습2 (0) | 2019.05.02 |
---|---|
recursion 예제 연습 (0) | 2019.05.02 |
algorithm 연습7 (0) | 2019.04.28 |
algorithm 연습6 (0) | 2019.04.28 |
algorithm 연습5 (0) | 2019.04.27 |
Comments