최종 수정 : 24/12/26
순환 알고리즘
순환 알고리즘는 함수나 프로시저를 정의할 때 함수 자신을 함수 내에서 호출하는 기법이다.
직접 순환(direct recursion)
☞ 함수가 그 수행이 완료되기 전에 자기 자신을 다시 호출하는 함수
간접 순환(indirect recursion)
☞ 자신의 함수를 호출하는 함수를 호출하여 간접적으로 자신을 호출하는 함수
순환은 어떤 복잡한 문제를 간단하게 풀 수 있는 작은 문제로 분할하여 해결하려는 알고리즘 기법인 분할 정복법의 특성을 가진 문제에 적합하다. if-else문, while문, for문으로 작성할 수 있는 어떤 프로그램도 순환으로 작성할 수 있고, 단순하게 표현할 수 있는 장점이 있으나, 재귀적 호출의 단계가 깊어지면 메모리(주기억장치) 부족 현상이 발생할 수 있어 재귀적 호출의 깊이는 너무 많아지면 성능이 낮아진다.
재귀적 호출을 이용하는 알고리즘은 이진 검색 알고리즘, 퀵(Quick) 정렬 알고리즘 등이 있다. 가급적이면 시스템의 성능적인 부분을 감안하여 반복 구문으로 가능하다면 반복문으로 작성하는 것이 좋다.
참고
독학사 교재
댓글