250x250
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
- 쿠키
- 클래스
- 연결 리스트
- 빅 오 표기법
- @NoArgsConstructor
- 선형 리스트
- JsonNode
- WebClient
- query
- 내부 정렬
- @ComponentScan
- 쿼리메소드
- @RequiredArgsConstructor
- 자료구조
- 계산 검색 방식
- mysql
- 코드
- 스택 큐 차이
- code
- 리스트
- 트리
- java
- 클린코드
- 정렬
- 배열
- 클린
- CleanCode
- 마크다운
- 인터페이스
- 마크다운 테이블
Archives
- Today
- Total
Developer Cafe
재귀 알고리즘 본문
728x90
컴퓨터 과학에 있어서 재귀는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다.
function ex() {
ex();
}
재귀에서 메서드가 반복되지 않는 경우를 기저 조건(중단 조건) 이라 부른다.
재귀를 다루는 컴퓨팅 사고
function factorial(number) {
if (number === 1) {
return 1;
} else {
return number * factorial(number - 1);
}
}
factorial(3);
위의 코드를 실행시키면 일어나는 컴퓨팅 사고
1. factorial(3)이 먼저 호출된다.
2. factorial(2)가 두 번째로 호출된다.
3. factorial(1)이 세 번째로 호출된다.
4. factorial(1)이 먼저 완료된다.
5. factorial(2)가 factorial(1)의 결과를 토대로 완료된다.
6. 끝으로 factorial(3)이 factorial(2)의 결과를 토대로 완료된다.
무한 재귀가 있을 때 프로그램은 컴퓨터 메모리에 더 이상 공간이 없을 때까지 같은 메서드를 호출 스택에 푸시한다. 이로 인해 발생하는 오류는 스택 오버플로라고 부른다.
728x90
'자료 구조 > 누구나 자료 구조와 알고리즘' 카테고리의 다른 글
배열 vs 연결 리스트 차이 그리고 노드, 이중 연결 리스트 (0) | 2021.03.07 |
---|---|
퀵 정렬 vs 삽입 정렬 차이 (0) | 2021.03.07 |
스택 vs 큐 차이 (0) | 2021.03.06 |
해시 테이블의 컴퓨팅 사고 (0) | 2021.03.06 |
빅 오 표기법 4. 삽입 정렬 (0) | 2021.03.05 |
Comments