본문 바로가기

개발/자료구조

1-5 순환

순환 : 수행도중 자기 자신을 호출해서 문제를 해결

- 정의 자체가 순환적일때 사용

- 예) 팩토리얼 구하기, 피보나치 수열, 하노이탑, 이진 탐색, 병합 정렬, 트리, 자료구조, 프랙털 등

- 무한 호출시, ,StackOerflow Error 발생

- 따라서 자기자신 호출시, 무한  호출 방지해야 함

 

순환 메소드의 구성 

- 기본 케이스 : 스스로를 더이상 호출하지 않는 부분

- 순환 케이스 : 스스로를 호출하는 부분

 

무한 호출 방지를 위해

변수 또는 수식의 값이 호출시마다

순환 case에서 감소되어

최종적으로 기본 case를 실행하도록 제어해야 함

 

(메소드의 마지막 부분에서 순환하는)꼬리 순환반복문으로 변환하는 것이 효율적

 

순환은

프로그램의 가독성을 높일 수 있는 장점을 갖지만,

시스템 스택 사용으로 메모리 사용 측면에서는 비효율적이다.

 

 

 

'개발 > 자료구조' 카테고리의 다른 글

1-4 자바 언어에 대한 기본적인 지식  (0) 2022.03.16
1-3 수행시간의 점근표기법  (0) 2022.03.12