Atelier 3.3.A: recherche dans un tableau trié #
Travail à réaliser #
-
En VSCode, sélectionner le paquet
atelier3_3_A
-
Créer la classe
MonAtelier3_3_A
qui hérite de la classeAtelier3_3_A
-
Créer la classe
ChercheurNaif
qui implante l’interfaceChercheur
-
Implanter la méthode pour trouver une valeur dans le tableau
- (ou copier le code de
ChercheurA
,atelier3_2_A
)
- (ou copier le code de
public class ChercheurNaif<C extends Comparable<C>> implements Chercheur<C> {
@Override
public int trouverIndicePourValeur(Liste<C> liste, C valeur) {
int indice = -1;
// TODO: comme ChercheurA de l'atelier3_2_A
return indice;
}
}
-
Créer la classe
ChercheurEfficace
qui implante l’interfaceChercheur
-
Implanter une recherche binaire dans une liste triée
public class ChercheurEfficace<C extends Comparable<C>> implements Chercheur<C> {
@Override
public int trouverIndicePourValeur(Liste<C> liste, C valeur) {
return rechercheBinaire(liste, valeur, 0, liste.longueur());
}
private int rechercheBinaire(Liste<C> liste, C valeur, int debutSegment, int finSegment) {
int indice = -1;
// TODO: chercheur binaire
return indice;
}
}
- Ajouter une méthode
main
à la classeMonAtelier3_3_A
:
public static void main(String[] args) {
new MonAtelier3_3_A().valider();
}
- Implanter les méthodes pour remplir le contrat du
Atelier3_3_A
, p.ex:
@Override
public <C extends Comparable<C>> Chercheur<C> fournirChercheurNaif() {
return new ChercheurNaif<>();
}
@Override
public <C extends Comparable<C>> Chercheur<C> fournirChercheurEfficace() {
return new ChercheurEfficace<>();
}
}
Validation en deux étapes #
-
Exécuter mon projet et valider mes classes et mes méthodes
-
Fermer la fenêtre afin d’exécuter les tests de performance