Algorithme de recherche dichotomique dans un tableau

Bac SC 09-09-26
12 0

Plan de tutoriel

1- Principe de l'algorithme de recherche dichotomique

2- Algorithme de recherche dichotomique

3- Programme Python

 

Principe de l'algorithme de recherche dichotomique

La recherche dichotomique est une méthode efficace permettant de rechercher une valeur dans un tableau trié dans l’ordre croissant. Son principe consiste à comparer la valeur recherchée avec l’élément situé au milieu de la partie du tableau étudiée.

Au début de la recherche, on considère l’ensemble des éléments du tableau comme zone de recherche. Deux indices, a et b, permettent de délimiter cette zone : a représente l'indice du premier élément et b celui du dernier élément. L’indice p de l’élément situé au milieu est ensuite calculé à l’aide de la formule p = (a + b) // 2.

La valeur recherchée x est alors comparée à l’élément t[p] situé au milieu. Si x est égale à t[p], la recherche est terminée car la valeur a été trouvée.

Si x est supérieure à t[p], comme le tableau est trié dans l’ordre croissant, tous les éléments situés à gauche de p sont inférieurs à x. Cette partie peut donc être éliminée et la recherche continue uniquement dans la partie droite en affectant a = p + 1.

À l’inverse, si x est inférieure à t[p], tous les éléments situés à droite de p sont supérieurs à x. Cette partie peut alors être éliminée et la recherche continue uniquement dans la partie gauche en affectant b = p - 1.

Ces étapes sont répétées jusqu’à ce que la valeur soit trouvée ou que la zone de recherche devienne vide. Dans ce dernier cas, cela signifie que la valeur recherchée n’existe pas dans le tableau. L’algorithme retourne alors True si la valeur a été trouvée et False dans le cas contraire.

L’avantage principal de la recherche dichotomique est qu’elle réduit de moitié la zone de recherche à chaque étape. Elle est donc beaucoup plus rapide qu’une recherche séquentielle lorsque le tableau contient un grand nombre d’éléments.

 

Algorithme de recherche dichotomique

Dans cet algorithme, On va utiliser trois fonctions et une procédure :

- la fonction saisie_taille

- la procédure remplir

- la fonction saisie

- la fonction recherche

Algorithme du programme Principal

Cet algorithme principal permet de rechercher une valeur donnée dans un tableau d’entiers trié dans l’ordre croissant, en utilisant une recherche dichotomique.

Son fonctionnement est organisé en plusieurs étapes :

1- Saisie de la taille du tableau

Il appelle la fonction saisie_taille() afin de déterminer le nombre n d’éléments du tableau.

2- Remplissage du tableau

Il appelle la procédure remplir(t, n) pour saisir les n éléments. Cette procédure veille à ce que les valeurs soient saisies dans l’ordre croissant, condition nécessaire pour effectuer une recherche dichotomique.

3- Saisie de la valeur recherchée

Il appelle la fonction saisie() afin de récupérer la valeur x que l'utilisateur souhaite rechercher.

4- Recherche de la valeur

Il appelle la fonction recherche(t, n, x), qui effectue la recherche dichotomique dans le tableau. Cette fonction retourne Vrai si x est présente et Faux dans le cas contraire.

5- Affichage du résultat

Enfin, l'algorithme affiche un message indiquant si la valeur recherchée a été trouvée ou non.

Déclaration des objets

Objet Type / Nature
n entier
x entier
t tableau des entiers

 

La fonction saisie_taille

La fonction saisie_taille() permet de saisir et de contrôler le nombre d’éléments n du tableau. Elle demande à l’utilisateur de donner une valeur comprise entre 2 et 14.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure remplir

La procédure remplir(t, n) permet de remplir les n premières cases du tableau t avec des entiers dans l’ordre croissant.

Le premier élément est saisi directement.

Pour chaque élément suivant, le programme vérifie qu’il est strictement supérieur à l’élément précédent. Si la valeur saisie ne respecte pas l’ordre croissant, une nouvelle saisie est demandée.

Ainsi, à la fin de la procédure, le tableau contient des éléments strictement croissants.

Déclaration des objets

Objet Type / Nature
i entier
test booléen

 

La fonction saisie

La fonction saisie() permet de demander à l'utilisateur de saisir une valeur entière à rechercher dans le tableau, puis de retourner cette valeur.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction recherche

La fonction recherche(t, n, x) a pour rôle de rechercher efficacement la valeur x dans un tableau t de n éléments triés dans l’ordre croissant, en utilisant la méthode de recherche dichotomique.

Elle commence par définir une zone de recherche comprise entre les indices a et b. À chaque étape, elle calcule l'indice p de l'élément situé au milieu de cette zone, puis compare x avec t[p].

Si x = t[p], la valeur recherchée est trouvée et la fonction retourne Vrai.

Si x > t[p], la recherche continue uniquement dans la partie droite du tableau en faisant a ← p + 1.

Si x < t[p], la recherche continue uniquement dans la partie gauche en faisant b ← p - 1. La recherche se poursuit jusqu'à ce que x soit trouvée ou que la zone de recherche devienne vide (a > b).

Déclaration des objets

Objet Type / Nature
p entier
a entier
b entier
resultat booléen

 

Programme en Python

Exécution programme

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info