JAVA > Recherche dichotomique de manière récursive, utilisé dans le cadre de l'implémentation de l'algorithme de dijkstra

public Router getRouter(String findRouter) {
    return 
this.recdicho(findRouter.toLowerCase(),1,listRouters.size()-1);     
}
    
/**
 * Fonction récursive de recherche dichotomique
 */
public Router recdicho(String findRouterint debutint fin) {      
        
// Vérifie que l'interval de recherche n'est pas vide
        
if(debut fin){            
          return 
null;            
    }    
        
    
// Détermine le milieu de l'intervalle        
    
int milieu = (debut+fin)/2;        
    
Router router this.listRouters.get(milieu);
    
String nom router.getNom().toLowerCase();
    
int compare findRouter.compareTo(nom);
        
    if (
compare 0// Appel récursif sur un intervalle strictement plus grand pour assurer la terminaison                    
                
return this.recdicho(findRouter,milieu+1,fin);         
    if (
compare 0// Appel récursif sur un intervalle strictement plus petit                
                
return this.recdicho(findRouter,debut,milieu-1);    
            
    
// Si ni inférieur ni supérieur alors égal            
    
return router;          
}
Retour