Untuk menguji kecekapan pelaksanaan dan overhed sistem rekursi dan gelung (untuk digunakan di sini), mula-mula siarkan contoh masalah: Melaksanakan jujukan Fibonacci F(n)=F(n-1)+ F(n-2)
Uji persekitaran Eclipse
1 Mula-mula kita menggunakan rekursi untuk melaksanakan
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. Gunakan gelung untuk melaksanakan
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; } } }
apabila nilai indeks sangat kecil Apabila kami melaksanakannya secara berasingan, kami tidak dapat merasakan sebarang perbezaan dalam kelajuan pelaksanaan Walau bagaimanapun, apabila anda melaraskan indeks kepada nilai yang cukup besar, 100, 200, 300, 1000. . gelung for boleh mengendalikan kelajuan pelaksanaan dengan cepat.
Apabila menggunakan rekursi, anda akan mendapati kesesakan yang jelas? Hubungi pengurus sumber sistem untuk melihat overhed sistem anda (anda mungkin tidak dapat membuka pengurus sumber kerana anda tersekat).
Atas ialah kandungan terperinci Bagaimana untuk menguji rekursi dan gelung di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!