선릉역 1번 출구

재귀(Recursion) 본문

Algorithm/Algorithm study

재귀(Recursion)

choideu 2021. 8. 19. 18:11

사전적 정의의 재귀란 어떤 것을 정의할 때 자기 자신을 참조하는 것을 말하고 컴퓨터에서는 재귀 호출(recursion call)의 형태로 많이 사용된다. 

장점: 코드의 간결함

단점: 무한 재귀호출의 위험성

 

재귀적 정의의 구성

1. 기본 단계: 몇몇 초기 원소들을 기술한다.

2. 귀납적 단계: 이미 존재하는 원소들로부터 새로운 원소들을 구성하는 규칙을 제시

 

가장 많이 사용하는 코드인 factorial code이다.

def factorial(num):
    if num < 1:
        return 1 //기본 단계로 f(0) = 1을 기술
    else:
        return num * factorial(num-1) //귀납적 단계로 f(n) = n * f(n-1)의 규칙을 제시하고 있음

+ 재귀 알고리즘 예시

- 피보나치 수열, 팩토리얼

- 병합 정렬, 퀵 정렬

- 이진 컴색

- 트리 탐색

- 그래프 탐색

- 동적 계획법

- 분할 정복 알고리즘

- 하노이의 탑

- 백트래킹 알고리즘

'Algorithm > Algorithm study' 카테고리의 다른 글

최장 증가 부분 수열 (longest increasing subsequence)  (0) 2021.09.15
dynamic programming  (0) 2021.09.12
queue  (0) 2021.08.30
Comments