Algorithms
[알고리즘] dynamic Fibonacci
반응형
1. 기본 (재귀)
int fibonacci(int i) { if (i == 0) return 0;
if (i <= 2) { return 1; }
return fibonacci(i - 2) + fibonacci(i - 1); } |
2. 해집합 이용 (dynamic)
int dynamic_fibonacci(int n, int *solution_set) { int ret = 0;
if (n == 0) return 0;
if (solution_set[n] > 0) { ret = solution_set[n]; goto end; }
if (n <= 2) { ret = solution_set[n] = 1; goto end; }
solution_set[n] = dynamic_fibonacci(n - 2, solution_set) + dynamic_fibonacci(n - 1, solution_set); return solution_set[n];
end: return ret; } |
반응형
'Algorithms' 카테고리의 다른 글
[알고리즘] graph cycle 여부 판단 알고리즘 (undirected 용) (0) | 2015.07.05 |
---|---|
[알고리즘] 개미집 찾기 문제 (한 node가 다른 node 의 탐색 경로 내 존재 여부 찾기) (0) | 2015.07.04 |
[알고리즘] 도달 가능 모든 경로의 종류 찾아내는 알고리즘 (0) | 2015.07.04 |
[알고리즘] critical activity path 찾기 (임계 작업 찾기) (0) | 2015.06.07 |
[알고리즘] 위상정렬 코드 (topological sort) for DAG (Directed acyclic graph) (0) | 2015.06.02 |
댓글