일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- matlab 영상처리
- c언어 정리
- c++
- 파이토치 강의 정리
- c언어
- 케라스 정리
- 김성훈 교수님 PyTorch
- MFC 프로그래밍
- pytorch
- 컴퓨터 비전
- pytorch zero to all
- object detection
- 골빈해커
- C언어 공부
- c++공부
- 딥러닝
- 모두의 딥러닝
- 딥러닝 공부
- 모두의 딥러닝 예제
- 해리스 코너 검출
- 가우시안 필터링
- 영상처리
- 딥러닝 스터디
- 파이토치 김성훈 교수님 강의 정리
- Pytorch Lecture
- TensorFlow
- tensorflow 예제
- 팀프로젝트
- 파이토치
- 미디언 필터링
Archives
- Today
- Total
ComputerVision Jack
자료구조 - Chapter 02 본문
반응형
재귀 (ReCursion)
재귀 함수
함수 내에서 자기 자신을 다시 호출하는 함수
함수가 호출되면 자기 자신이 복사되어 실행한다고 생각하면 이해하기 편하다.
재귀 함수를 정의하는데 있어서 탈출 조건을 구성하는 것이 중요하다.
예제 : 간단한 재귀함수 예시
if (num <= 0) 을 통하여 함수 탈출 조건을 명시한다.
예제 : Factorial 재귀함수로 구현하기
F(n) = n * F(n - 1) -- (n>= 1)
1 -- (n = 0) 탈출 조건으로 선택
if (n == 0) 탈출 조건을 명시한다.
예제 : 피보나치 수열 재귀함수로 구현하기
0 -- n = 1 탈출 조건
F(n) = 1 -- n = 2 탈출 조건
F(n - 1) + F(n - 2) -- 그외
식 그대로 코딩으로 구현하면 된다.
만약 좌우 재귀함수가 return으로 반환되는 경우
왼편의 Fibo함수 먼저 호출이 완료 되어야 오른쪽 Fibo 함수가 호출이된다.
그 과정을 트리로 구현해서 확인하면 편리하다.
예제 : 이진 탐색 알고리즘 재귀 구현
재귀함수 구현시, 2가지를 생각하는게 편하다.
- 일련의 반복적인 과정
- 탈촐조건
이진 탐색 알고리즘을 재귀로 구현할 때 고려할 점은
- 탐색 범위 중앙 확인, 없다면 반으로 줄여서 다시 확인
- 탐색 시작 위치가 탐색 범위 끝 보다 커지는 경우
예제 : 하노이 탑 (The Tower of Hanoi)
하노이탑 문제 접근
- 작은 원반 n - 1개를 A -> B로 이동
- 큰 원반 1개를 A에서 C로 이동
- 작은 원반 n - 1개를 B에서 C로 이동
반응형
'Programming Language > Data Structure' 카테고리의 다른 글
자료 구조 - Chpater 06 (0) | 2020.03.02 |
---|---|
자료구조 - Chapter 05 (0) | 2020.02.28 |
자료구조 - Chapter 04 (0) | 2020.02.27 |
자료구조 - Chapter 03 (0) | 2020.02.26 |
자료 구조 - Chapter01 (0) | 2020.02.24 |
Comments