Vous êtes sur la page 1sur 7

Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme


Sommaire
Chapitre 9 – Recherche, tris et analyse d’algorithme
• Introduction aux algorithmes de recherche
Programmation C++ • Recherche dans un tableau d’objets

• Introduction aux algorithmes de tri

• Tris d’un tableau d’objets


Par
Siaka Fofana • Les vecteurs de tri et de recherche
fsiaka@hotmail.com
• Introduction à l’analyse des algorithmes
Laboratoire des Signaux et Systèmes

Copyright
Copyright © 2017
© 2014, Siaka
2008 Fofana,
Pearson Laboratoire
Education, des Signaux
Inc. Publishing et Systèmes.
as Pearson Université FHB Côte d’Ivoire
Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de recherche Introduction aux algorithmes de recherche
Algorithme de recherche linéaire
Fixer trouvé à false

• Rechercher: localiser un élément spécifique dans une Fixer position à –1


liste (tableau, vecteur, etc.) d’informations Fixer index à 0
Tant que index < nombre éléments et trouvé est false
• Deux algorithmes (méthodes) seront considérés: Si liste [index] est égal à la valeur recherchée
– Recherche linéaire (ou recherche séquentielle) trouvé = true
– Recherche binaire (ou recherche dichotomique)
position = index
Fin de Si
Ajouter 1 à index
Fin de Tant que
Retourner position
Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

1
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de recherche Introduction aux algorithmes de recherche
Algorithme de recherche linéaire Algorithme de recherche linéaire
• Le tableau listeDeNombres contient • Avantages
– Algorithme facile à comprendre et à implémenter
17 23 5 11 2 29 3 – Les éléments du tableau peuvent être dans n’importe
quel ordre
• Dans la recherche de la valeur 11, la recherche linéaire
examine 17, 23, 5 et 11 • Inconvénients
– Inefficace (lent): pour un tableau de N éléments il en
• Dans la recherche de la valeur 7, la recherche linéaire moyenne examine N/2 éléments pour une valeur qui
examine 17, 23, 5, 11, 2, 29 et 3 se trouve dans le tableau et N éléments pour une
valeur qui ne se trouve pas dans le tableau

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de recherche Introduction aux algorithmes de recherche
Algorithme de recherche binaire Algorithme de recherche binaire
1. Diviser un tableau trié en trois sections:
– l'élément du milieu • Le tableau listeDeNombres2 contient
– les éléments d’un côté de l’élément du milieu
– les éléments de l’autre côté de l’élément du milieu
2 3 5 11 17 23 29
2. Si l’élément du milieu est la valeur recherchée, terminer.
Autrement, passer à l’étape 1, en n’utilisant seulement • Dans la recherche de la valeur 11, la recherche
que la moitié du tableau succeptible de contenir la valeur binaire examine 11 et s’arrête
recherchée.
• Dans la recherche de la valeur 7, la recherche binaire
3. Repéter les étapes 1 et 2 jusqu’à ce que la valeur soit examine 11, 3, 5 et s’arrête
trouvée ou qu’il n’y ait plus d’éléments à examiner.

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

2
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de recherche Recherche dans un tableau d’objets
Algorithme de recherche binaire
• Les algorithmes de recherche ne se limitent pas aux
• Avantage tableaux d’entiers
– Beaucoup plus efficace que la recherche linéaire. Pour un
tableau de N éléments, elle effectue au plus log2N comparaisons.
• Pour la recherche dans un tableau d’objets ou de
structures, la valeur recherchée est un membre de l’objet
• Inconvenients ou de la structure et non l’objet entier ou la structure
– Nécessite que le tableau soit trié entière

• Le membre dans la structure ou dans l’objet: champ clé

• La valeur utilisée dans la recherche: clé de recherche

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de tri Introduction aux algorithmes de tri
Algorithme de tri bulle
• tri: ranger les valeurs dans un ordre 1. Comparer les deux 1ers éléments et les échanger s’ils
– alphabetiquel ne sont pas dans l’ordre.
– ascendant (du plus petit au plus grand) numérique
– descendant (du plus grand au plus petit) numérique
2. Se déplacer d’un élément et comparer les 2 ème et 3ème
éléments. Echanger si nécessaire. Continuer ainsi
• Deux algorithmes de tri considérés jusqu’à la fin du tableau.
– tri bulles
– tri par sélection
3. Repasser encore dans le tableau en repétant le
processus avec échange si nécessaire.

4. Repeter jusqu’à ce qu’un passage se fasse sans


échange.
Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

3
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de tri Introduction aux algorithmes de tri
Algorithme de tri bulle Algorithme de tri bulle

Après le premier passage, le tableau listeDeNombres3


Le tableau listeDeNombres3 contient contient
Dans l’ordre à
partir du passage
17 23 5 11 17 5 11 23 précédent

Comparer d’abord les valeurs 17 Enfin, comparer les valeurs Comparer les valeurs 17 et Comparer les valeurs 17 et
et 23. Elles sont dans l’ordre, donc 23 et 11. Ne sont pas dans 5. Ne sont pas dans l’ordre, 23. Dans l’ordre, donc
pas d’échange. l'ordre, donc les échanger. donc les échanger. pas d’échange.

Puis, comparer les valeurs Comparer les valeurs 17 et


23 et 5. Ne sont pas dans 11. Ne sont pas dans l’ordre,
l'ordre, donc les échanger. donc les échanger.

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de tri Introduction aux algorithmes de tri
Algorithme de tri bulle Algorithme de tri bulle

Après le second passage, le tableau listeDeNombres3


• Avantage
contient
En ordre à partir – Facile à comprendre et à implémenter
du passage
précédent
5 11 17 23
• Inconvénients
– Son inefficacité le rend lent pour les grands tableaux
Comparer les valeurs 5 et Comparer les valeurs 17 et
11. Dans l’ordre, donc 23. Dans l’ordre, donc
pas d’échange. pas d’échange.

Comparer les valeurs 11 et


17. Dans l’ordre, donc
pas d’échange.

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

4
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de tri Introduction aux algorithmes de tri
Algorithme de tri par sélection Algorithme de tri par sélection

1. Localiser le plus petit élément dans le tableau et Le tableau listeDeNombres contient


l’échanger avec l’élément à la position 0.
11 2 29 3
2. Localiser l’élément le plus petit suivant dans le tableau
et l’échanger avec l’élément à la position 1.
Le plus petit élément est 2. Echanger 2 avec l’élément en
1ère position dans le tableau (i.e., élément 0).
3. Continuer ainsi jusqu’à ce que tous les éléments
soient dans l’ordre. Dans l’ordre
2 11 29 3

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction aux algorithmes de tri Introduction aux algorithmes de tri
Algorithme de tri par sélection Algorithme de tri par sélection

L’élément le plus petit suivant est 3. Echanger 3 avec • Avantage


l’élément à la 2ème position dans le tableau. – Beaucoup plus efficace que le tri bulle, quelques
echanges
Dans l’ordre
2 3 29 11
• Inconvénient
L’élément le plus petit suivant est 11. Echanger 11 avec – Considéré comme plus difficile à comprendre et à
l’élément à la 3ème position dans le tableau. implémenter que tri bulle
Dans l’ordre
2 3 11 29

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

5
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Tri dans un tableau d’objets Tri et recherche dans les vecteurs

• Les algorithmes de tri et de recherche peuvent s’appliquer


• Comme pour la recherche, les tableaux à trier peuvent aussi bien aux vecteurs qu’aux tableaux
contenir des objets ou des structures

• Nécessite quelques légères modifications au niveau des


• Le champ clé détermine comment les structures ou les
fonctions pour qu’elles puissent utiliser des arguments
objets seront ordonnés
vecteurs
– vector <type> & utilsé dans le prototype
• Lors de l’échange des contenus des éléments d’un
– pas besoin d’indiquer la taille du vecteur puisque les fonctions
tableau les structures entières ou les objets entiers peuvent utiliser la fonction membre size de vector pour faire les
doivent être échangés, pas juste seulement les calculs
champs clé dans les structures ou dans les objets

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction à l’analyse des algorithmes Introduction à l’analyse des algorithmes
Terminologies
• Etant donnés deux algorithmes pour résoudre un
problème qu’est ce qui peut rendre l’un plus efficace (ou
mieux) que l’autre? • Problème calculable: un problème qui peut être
résolu par un algorithme
• L’efficacité d’un algorithme se mesure en terme
– d‘espace mémoire utilisé dans l’ordinateur • Etape de base: une opération de l’algorithme qui
– de temps mis pour exécuter l’algorithme s’exécute dans un temps (une durée) constant

• L’analyse des algorithmes est un moyen plus efficace • Exemples d’étapes de base:
pour determiner l’efficacité que l’utilisation des données – échanger les contenus de deux variables
empiriques – comparer deux valeurs

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

6
Programmation C++ 07/09/2017

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction à l’analyse des algorithmes Introduction à l’analyse des algorithmes
Terminologies Terminologies
Analyse:
• Complexité d’un algorithme: le nombre d’étapes de Lignes 1 et 2 s’exécutent une fois.
base nécessaires pour exécuter l’algorithme pour une Trouver la plus grande valeur d’un tableau
entrée de taille N (N = nombre de valeurs en entrée) 1. plusGrand = A[0]
Le test de la ligne 3 s’exécute n fois.
2. indx = 0

• Pire cas de complexité d’un algorithme: le nombre 3. while (indx < n) do


Le test de la ligne 4 s’exécute n fois.
d’étapes de base pour une entrée de taille N qui 4. if (A[n] > plusGrand)
nécessite le plus gros effort (ou travail) 5. then
L’affectation de la ligne 6 s’exécute au
6. plusGrand = A[n] plus n fois.
• Fonction de complexité de cas moyen: la complexité 7. end if
généralement moyenne pour une entrée de taille N 8. end while A cause des lignes 3 et 4, l’algorithme
nécessite un temps d’exécution
proportionnel à n.

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Recherche, tris et analyse d’algorithme Recherche, tris et analyse d’algorithme


Introduction à l’analyse des algorithmes Introduction à l’analyse des algorithmes
Comparaisons des complexités des algorithmes Notation "Grand O"
Etant donnés les algorithmes F et G avec des fonctions • La fonction f(n) est O(g(n)) (“f est grand O de g") pour une
f ( n)
de complexité f(n) et g(n) pour une entrée de taille n fonction mathématique g(n) si le rapport g (n) approche une
f ( n)
• Sil le rapport approche une valeur constante quand n constante positive quand n croît
g ( n)
croît, F et G ont des efficacités équivalentes
f ( n)
• Si le rapport g (n) croît quand n croît, l’algorithme G est • O(g(n)) définit une classe de complexité pour la fonction
plus efficace que l’algorithme F f(n) et pour l’algorithme F
f ( n)
• Si le rapport g (n) approches 0 quand n croît, l’algorithme
F est plus efficace que l’algorithme G
• Pour une classe de complexité croissante les algorithmes
concernés sont moins efficaces

Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley Copyright
Copyright©©2014,
2017 2008 Fofana, Education,
SiakaPearson LaboratoireInc.
desPublishing
Signaux etasSystèmes. Université FHB Côte d’Ivoire
Pearson Addison-Wesley

Vous aimerez peut-être aussi