recherche dichotomique
Recherche dichotomique
Explorer le sujet
Recherche dans un jeu de cartes
jeu de cartes triées
- Ecrire une liste L représentant le jeu de cartes de l’image. La carte qui a pour valeur 7 sera représentée par l’entier 1, puis celle de valeur 8 aura la valeur 2, etc … jusqu’à l’As qui vaut 8.
- Détailler l’algorithme de recherche séquentielle.
- Détailler l’algorithme de recherche par dichotomie.
- Expliquer avec une méthode de votre choix comment l’algorithme de recherche réduit cette liste jusqu’à trouver la carte de la Dame de Coeur. Comparer ainsi l’efficacité des 2 algorithmes, celui de recherche sequentielle et celui de recherche dichotomique.
TP: Recherche dans une liste de mots
Une autre version du TP utilisant la librairie time se trouve ici
- Télécharger la liste de mots liste_francais.txt à partir du lien suivant: liste_francais.txt
- Ouvrir un notebook et mettre le fichier dans le MÊME dossier.
- Importer la liste de mots sous forme de liste et afficher les 13 premiers éléments de la liste à l’aide du script suivant:
Recherche séquentielle
On lance le chronomètre au debut du script avec l’instruction %%timeit
Recopier et compléter le script. Mesurer également le temps mis par la fonction pour trouver le mot tracts.
Recherche dichotomique
Recopier et compléter le script. Mesurer également le temps mis par la fonction pour trouver le mot tracts. Commenter la différence de temps entre les 2 algorithmes. Cette différence est-elle toujours significative, quel que soit le mot recherché? (Faire des tests).
Comparer les fonctions g(n)
Comme sur l’image suivante, vous allez représenter sur la même figure les fonctions:
- $y = 1$
- $y = log_2(x)$
1 et log(n) : log(n) a une croissance faible
On s’aidera du lien suivant pour représenter des graphiques avec Matplolib.
Puis vous ajouterez sur le même graphique les fonctions:
- $y = x$
- $y = x * log_2(x)$
n*log(n) et n ont une croissance comparable
- $y = x**2$
- $y = x**3$
Puis
- $y = 2**x$
Comparer alors ces fonctions: Sont-elles classées selon leur divergence lorsque x augmente?
Suggestion de projets
La recherche dichotomique est plus efficace que les méthodes:
- de recherche sequentielle
- de recherche par hachage
Elle présente l’avantage d’être rapide, mais aussi de pouvoir consulter les éléments adjacents à la valeur cherchée.
Elle peut s’adapter dans divers contextes, tels que la recherche dans des tableaux, des listes chaînées, des arbres binaires de recherche, etc. C’est aussi la méthode utilisée pour la fonction de recherche dans une base de données. Le programme de gestion d’une base de données gagnera à classer les éléments par ordre alphabetique, à réactualiser sa liste lors d’une nouvelle insertion (long), puis de proposer une recherche par méthode dichotomique (rapide).