재귀 알고리즘 설계의 기본 아이디어는 다음과 같습니다.
복잡한 문제의 경우 원래의 문제를 비교적 간단한 몇 가지 하위 문제로 분해하고 하위 문제가 너무 간단하여 직접 해결할 수있을 때까지 계속되므로, 즉 리퍼스의 출구이므로 원래의 문제를 다시 해결할 수 있습니다.
재귀 알고리즘을 수행 할 때는 출구를 파악해야합니다. 즉, 재귀 알고리즘을 수행 할 때는 명확한 재귀 종료 조건이 있어야합니다. 이것은 매우 중요합니다. 실제로이 출구는 이해하기 쉽습니다. 그것은 단지 조건 일뿐입니다. 이 조건이 충족되면 더 이상 반복하지 않습니다.
이해하기위한 열쇠는 다음과 같습니다.
(1) 재귀 출구
(2)지면 푸시는 점차 출구에 다가갑니다
재귀는 자체를 호출하는 방법 자체의 동작입니다. 재귀 헤더, 즉 재귀를 종료 할 때를 작성하십시오.
악순환을 피하십시오.
예 1, 재귀 적으로 1 ~ 100을 인쇄하십시오
패키지 com.lanhuigu.base; public class cursiontest {private static int i = 0;/** * 재귀 적으로 1 ~ 100 */public static void testcursion01 () {i ++; // 자체적 인익을 얻는 경우 (i <= 100) {// 100보다 적은 경우 콜백, 그렇지 않으면 콜백이 루프를 피하기 위해 뛰어납니다. System.out.println (i); testcursion01 (); // 콜백 : 콜백 자체} else {system.out.println ( "Game Over!");}} public static void main (String [] args) {testCursion01 (); // print 1 ~ 100}}예 2 : 특정 숫자의 계승을 재귀 적으로 계산합니다.
package com.lanhuigu.base; public class cursiontest {/***특정 숫자*/public static int testfactorial (int n) {if (n == 1) {return 1;} else {testfactorial (n-1); 5}}}}} 계산재귀 계산 요인과 관련하여 재귀 메모리 분석 구조 다이어그램 :
먼저 긴 줄을 설정하고 마침내 줄을 닫은 다음 물고기를 해변으로 당깁니다.
요약
위의 내용은이 기사에서 Java 재귀 알고리즘의 예제 분석에 관한 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!