Pour tester l'efficacité d'exécution et la surcharge système de la récursivité et de la boucle (for est utilisé ici), postez d'abord un exemple de problème : Implémentation de la séquence de Fibonacci F(n)=F(n-1)+F(n-2)
Environnement de test Eclipse
1. Nous utilisons d'abord la récursion pour implémenter
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. Utilisez la boucle for pour implémenter
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; } } }
Lorsque la valeur de l'index est très petite, il n'y a aucune différence lorsque nous l'exécutons séparément Nous ne pouvons pas ressentir. toute différence dans la vitesse d'exécution, mais lorsque vous mettez index Lorsqu'elle est ajustée à une valeur suffisamment grande, 100, 200, 300, 1000... la boucle for peut facilement être exécutée très rapidement.
Lorsque vous utilisez la récursivité, vous rencontrerez des bourrages évidents, y en a-t-il ? Appelez le gestionnaire de ressources système pour connaître la surcharge de votre système (vous ne pourrez peut-être pas ouvrir le gestionnaire de ressources car vous êtes bloqué).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!