반응형
정의
큰 문제를 반복 가능한 작은 문제로 나눠 푸는 방법
모든 재귀함수는 반복문으로 작성 가능
장단점
반복문 | 재귀함수 |
---|---|
직관적 | 상대적으로 복잡함 |
코드가 김 | 코드가 짧음 |
가독성이 좋지 않음 | 가독성이 좋음 |
메모리를 적게 사용 | 메모리를 많이 사용 |
스택오버 플로우가 일어날 가능성이 거의 없음 | 호출이 너무 깊으면 스택오버 플로우 |
변수상태가 저장되지 않음 | 각 단계의 변수 상태가 자동 저장됨(함수의 스택 프레임 때문) |
함수 호출 과부화가 일어남 |
실무
실무는 가독성이 좋고 유지보수가 좋은 코드가 좋으므로, 기본적으로 재귀함수로 작성
이런 경우 반복문의 작성(재귀함수의 단점 때문)
- 스택오버 플로우가 날 가능성이 있는 경우 : 피보나치 수열의 큰수를 계산해야 하는 코드
- 성능문제가 확인된 경우: 1초에 10만번씩 실행되어야 하는 코드
반응형
'old > Programming' 카테고리의 다른 글
파이썬의 변수 (0) | 2021.09.03 |
---|---|
꼬리 재귀 함수 (0) | 2021.09.03 |
좋은 코드 쓰는 법 (0) | 2021.08.31 |
[Android Studio 소스코드]를 [Github]에 업로드 하는 법 (0) | 2021.08.31 |
알고리즘 이란 (0) | 2021.08.28 |