재귀 및 루프의 실행 효율성과 시스템 오버헤드를 테스트합니다(여기서는 for가 사용됨). 먼저 예제 질문을 게시하세요. 피보나치 수열 F(n)=F(n-1)+F(n-2)
테스트하기 환경 Eclipse
1. 먼저 재귀를 사용하여
package com.youfeng.test; public class Fab {//递归 public static void main(String [] args){ System.out.println(F(40)); } public static Long F(int index){ if(index==1||index==2){ return 1L; } else{ return F(index-1)+F(index-2); } } }
를 구현합니다. 2. for 루프를 사용하여
package com.youfeng.test; public class Fab2 {//循环 public static void main(String [] args){ System.out.println(F(40)); } public static Long F(int index){ if(index==1||index==2){ return 1L; } else{ Long f1=1L; Long f2=1L; Long f=0L; for(int i=0;i<index;i++){ f1=f2; f2=f; f=f1+f2; } return f; } } }
를 구현합니다. index의 값이 매우 작은 경우 별도로 실행해도 아무런 차이가 없습니다. 실행 속도에는 차이가 있지만 인덱스를 넣을 때 100, 200, 300, 1000... 등 충분히 큰 값으로 조정하면 for 루프를 매우 빠르게 실행할 수 있습니다.
재귀를 사용할 때 눈에 띄게 잼이 발생하는 경우가 있나요? 시스템 오버헤드를 확인하려면 시스템 리소스 관리자를 호출하세요(막혀서 리소스 관리자를 열지 못할 수도 있습니다).
위 내용은 Java에서 재귀 및 루프를 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!