recursive 예제

재귀 알고리즘은 재귀 알고리즘으로 대체할 수 있습니다. [20]. 재귀 알고리즘을 대체하는 한 가지 방법은 스택 메모리 대신 힙 메모리를 사용하여 시뮬레이션하는 것입니다. [21] 대안은 전적으로 비재귀 방법을 기반으로 대체 알고리즘을 개발하는 것입니다. [22] 예를 들어, Rich Salz의 와일드매트 알고리즘과 같은 와일드카드 일치를 위한 재귀 알고리즘[23]은 한때 일반적이었습니다. 와일드카드 알고리즘과 일치하는 Krauss와 같은 동일한 목적을 위한 재귀 알고리즘은 재귀의 단점을 피하기 위해 개발되었으며[24] 테스트 수집 및 프로파일링 성능과 같은 기술에 따라 점차적으로 개선되었습니다. [25] 다중 재귀는 때때로 단일 재귀로 변환될 수 있습니다(원하는 경우 반복으로 변환). 예를 들어 Fibonacci 시퀀스를 순진하게 계산하는 것은 여러 반복이지만 각 값에는 두 개의 이전 값이 필요하므로 두 개의 연속값을 매개 변수로 전달하여 단일 재귀로 계산할 수 있습니다. 이것은 더 자연스럽게 코어커션으로 구성되며, 초기 값에서 구축되고, 각 단계의 연속적인 값에서 추적됩니다. 보다 정교한 예제는 여러 번의 재귀가 아닌 반복적인 트리 순회를 허용하는 스레드된 이진 트리를 사용하는 것입니다.

컴퓨터 과학에서 재귀의 중요한 응용 프로그램은 목록 및 트리와 같은 동적 데이터 구조를 정의하는 것입니다. 재귀 데이터 구조는 런타임 요구 사항에 대응하여 이론적으로 무한한 크기로 동적으로 증가할 수 있습니다. 반대로 정적 배열의 크기는 컴파일 시 설정해야 합니다. 이전 장에서 재귀 입력을 검토할 때 몇 가지 재귀 예제를 살펴보았지만 루프를 사용하여 쉽게 해결할 수 있었습니다. 이 장은 결국 재귀가 쉽게 할 수없는 일을 할 수있는 예를 보게 될 것이라고 약속했다. 이제 몇 가지 예제를 살펴보겠습니다. 다음 예제를 살펴보겠습니다. devtools를 사용하여 언제 어디서 무슨 일이 일어나고 있는지 개념적 이해를 얻을 수 있습니다. 각 프로세스를 통해 디버거 문과 단계를 사용해야 합니다. 단일 자체 참조만 포함하는 재귀는 단일 재귀라고 하며 여러 자체 참조를 포함하는 재귀는 다중 재귀라고 합니다. 단일 재귀의 표준 예는 선형 검색과 같은 목록 통과를 포함하거나 요인 함수를 계산하는 반면, 다중 재귀의 표준 예는 깊이 우선 검색과 같은 트리 순회를 포함합니다.

파일 시스템에서 디렉터리 구조와 관련된 모든 것은 어떻습니까? 파일을 재귀적으로 찾고, 파일을 삭제하고, 디렉토리를 만드는 등의 재귀에 재귀 코딩 연습에 퀴즈: 솔루션재귀 재귀 연습 문제에 대한 모든 기사는 여기에 수학 예제가 많이 있습니다, 하지만 당신은 실제 예제를 원했다, 그래서 생각의 비트와 함께, 이것은 아마도 내가 제공 할 수있는 최선의 : 재귀 알고리즘은 반복되는 함수 호출 및 반환의 오버헤드로 인해 작은 데이터에 비효율적입니다.