public Router getRouter(String findRouter) {
return this.recdicho(findRouter.toLowerCase(),1,listRouters.size()-1);
}
/**
* Fonction récursive de recherche dichotomique
*/
public Router recdicho(String findRouter, int debut, int 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;
}