Q&A

  • 재귀가 도대체 먼지 자세히좀 설명해주십시오
재귀가 도대체 먼지좀

자세히 설명좀 해주십시요
1  COMMENTS
  • Profile
    윤승환 2003.01.13 18:10
       재귀(再歸)호출을 말씀하시는 거겠죠?

    다시 자신을 호출한다는 뜻이니 함수내에서 자신을 다시 호출하는 형태를 말하는 것입니다.

    가령

    function SolveIt(a,b)  :integer;
    begin
    .
    .
    .
      if xxx then
        yyy
      else
       c :=SolveIt(aa,bb);
    .
    .
    .
    end;
    하는 형태를 취하죠.

    중요한 점은 무한정 자신을 호출만 할 수는 없으니 언젠가는 xxx조건을 만족시켜서 더이상의 재귀호출을 막아야한다는 겁니다.

    실제 잘 사용하면 복잡한 문제를 간단하게 처리할 수 있다고 합니다. 하지만 논리적 흐름이 분명하지 않고 메모리 사용이 상대적으로 많아서 자주 사용되는 형태는 아닙니다. 재귀호출을 사용하는 대표적인 형태로는 하노이 탑이나 이진정렬(퀵소트)등이며 인공지능 언어인 Prolog에서는 언어의 근간이기도 합니다.