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 |
Tags
- 생활코딩
- AWS기초
- css기초
- CSS
- node.js
- AWS조사
- JavaScript
- var
- APPEND
- 기초공부
- 원본과 복사본
- complexity
- 스코프
- node.js설치
- 리커젼
- vscode
- 개발툴
- Big-O notation
- flex기본
- 클로저
- scope
- IT
- appendChild
- AWS
- 메모이제이션
- 인터프리터
- prototype
- let
- 재귀함수
- 코드스테이츠
Archives
- Today
- Total
Jveloper
Recursion(재귀 함수) 본문
recursion의 핵심 : recursion을 만들때는 탈출구부터 생각하라 !
대표적인 예) factorial, fibonacci
fibonacci 를 살펴보자
function fib(n){
if(n === 0) return 0; // 탈출구
else if(n === 1) return 1; // 탈출구
else if(n > 1){
return fib(n-1) + fib(n-2); // 재귀
}
}
fib(6); // 8
- 리커전의 단점 : 호출횟수가 너무 많음, 성능상 손해임( 대안책(?) : 메모이제이션 )
- 리커전의 장점 : 표현방법에 있어서는 반복문보다 낫다
메모이제이션이란? 캐시를 구현한것이다 ( 한번 불려졌던건 기억해놓는다 그러므로 호출횟수가 훨씬 적어진다)
다른 케이스들)
- 트리구조에서 ( 트리구조가 얼마나 깊을지 알 수 없기때문에 리커젼을 쓰면 효율적이다 )
1. 노드를 찾을때
2. JSON stringify
3. getElementsByClassName
Q. 그럼 반복문으로는 트리의 노드를 찾을 수 없을까?
A. 가능하다 -> while문을 써서 찾는것이 가능하다
도전과제 : 유클리드 호제법 이용해서 최대공약수 리컬시브하게 구현하기
'JavaScript' 카테고리의 다른 글
__proto__, constructor, prototype (0) | 2019.06.03 |
---|---|
Prototype (0) | 2019.05.07 |
Closure (0) | 2019.04.25 |
Scope (0) | 2019.04.23 |
Node.appendChild 와 Node.prepend (0) | 2019.04.15 |
Comments