SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Chapitre 3
Les algorithmes de recherche et de tris
Module 20: Informatique 3 Algorithmique et programmation C
2´eme ANNEE LICENCE D’ENSEIGNEMENT DE MATHEMATIQUES (LEM)
2´eme ANNEE LICENCE CRYPTO MATHEMATIQUE ET SECURITE DE L’INFORMATION (LCMSI)
Texte
Texte
Texte
mlahby@gmail.com
7 novembre 2016
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 1/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Plan
1 Les algorithmes de recherche
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
2 Les algorithmes de tris classiques
Tri par s´election
Tri par bulle
Tri par insertion
3 Les algorithmes de tris rapides
Tri rapide
Tri fusion
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 2/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
Recherche s´equentielle
Principe de l’algorithme
On cherche `a d´eterminer si un tableau contient une certaine
valeur.
On parcours le tableau ´el´ement par ´el´ement, et on interrompre
le parcours d`es que l’´el´ement est trouv´e.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 3/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
Recherche s´equentielle
Solution 1
int Recherche Seq(int T[],int N, int x)
{int i=0 ;
while (i<N and T[i] !=x)
{i=i+1 ;
}
if (i<N)
return 1 ;
else
return 0 ;
}
Solution 2
int Recherche Seq(int T[],int N, int x)
{int i=0 ;
for (i=0 ;i < N ;i++)
if (T[i]==x)
return 1 ;
return 0 ;
}
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 4/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
Recherche s´equentielle
Complexit´e
la complexit´e est O(n)
Inconv´enient
Cet algorithme est d´econseill´e pour les tableaux tri´es.
Un dictionnaire contient de l’ordre de 105 mots
Si un test prend 0,01s, une recherche compl`ete prendrait plus
de un 1minute 30 s.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 5/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
Recherche dichotomique dans un tableau tri´e
Principe de l’algorithme
la recherche d’un ´el´ement dans un tableau avec la m´ethode de
dichotomique requiert un tableau tri´e.
On on coupe le tableau en deux par le milieu et on d´etermine
si la valeur x doit ˆetre recherch´ee dans la moiti´e gauche ou
droite
En effet, il suffit pour cela de la comparer avec la valeur
centrale.
Puis, on r´ep`ete le processus sur la portion s´electionn´ee.
.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 6/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Recherche s´equentielle
Recherche dichotomique dans un tableau tri´e
Recherche dichotomique dans un tableau tri´e
D´efinition de la fonction
int RechDichotomique(int T[],int N, int x)
{int g, d, m ;
g=0 ;
d=N-1 ;
while(g<=d)
{ m=(g+d)/2 ;
if (T[m]==x)
return 1 ;
if (T[m]<x)
g=m+1 ;
else
d=m-1 ;
}
return 0 ;
}
Complexit´e
la complexit´e de la recherche dichotomique est O(log(n))
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 7/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par s´election
Principe
Le tri par s´election consiste `a chercher la plus petite valeur de la liste, puis de la
mettre `a la derni`ere place en l’´echangeant avec la premi`ere valeur. On r´eit`ere alors le
proc´ed´e sur la liste restreinte aux nombres restants et cela jusqu’`a obtenir la liste tri´ee.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 8/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par s´election
La fonction TriSelection(T,n)
void TriSelection(int T[],int n) :
{int i,j,Posmin,Tmp ;
for(i=0 ;i<n-1 ;i++)
{
Posmin=i ;
for(j=i+1 ;i<n ;i++){
if (T[j]<T[Posmin])
Posmin=j ;}
/*****Permutation******/
Tmp=T[i] ;
T[i]=T[Posmin] ;
T[Posmin]=Tmp ;
}
}
Complexit´e
la complexit´e est O(n2)
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 9/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par bulle
Principe
Le principe du tri par bulle consiste `a comparer deux `a deux les ´el´ements e1 et e2
cons´ecutifs d’un tableau et d’effecteur une permutation si e1 > e2. On continue de
trier jusqu’`a ce qu’il n’y ait plus de permutation.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 10/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par bulle
La fonction TriBulle(T,n)
void TriBulle(int T[ ],int n)
{int i,Tmp,inversion=1 ;
while (inversion)
{
inversion=0 ;
for(i=0 ;i<n-1 ;i++)
if (T[i]>T[i+1]){
/*****Permutation*****/
Tmp=T[i] ;
T[i]=T[i+1] ;
T[i+1]=Tmp ;
inversion=1 ;}
}
}
Complexit´e
la complexit´e est O(n2)
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 11/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par insertion
Principe
Le tri par insertion consiste `a ins´erer le premier ´el´ement `a trier au premier
emplacement d’une nouvelle liste, puis on ins`ere chaque nouvel ´el´ement `a sa bonne
place dans la liste d`ej`a tri´ee. On r´eit`ere alors le proc´ed´e jusqu’`a avoir replac´e tous les
´el´ements de la liste initiale. (jeu de cartes ou un paquet de copies).
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 12/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri par s´election
Tri par bulle
Tri par insertion
Tri par insertion
La fonction TriInsertion(T,n)
void TriInsertion(int T[ ],int n)
{int i,j,Tmp ;
for(i=0 ;i<n ;i++)
{
j=i-1 ;
while (j>=0 and T[j]>T[j+1])
{
/********Permutation********/
Temp=T[j] ;
T[j]=T[j+1] ;
T[j+1]=Tmp ;
j=j-1 ;
}
}
}
Complexit´e
la complexit´e est O(n2)
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 13/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Principe de tri rapide
D´efinition
Le tri rapide (en anglais quicksort) est un algorithme de tri invent´e par C.A.R. Hoare
en 1961 et fond´e sur la m´ethode de conception diviser pour r´egner. Il est g´en´eralement
utilis´e sur des tableaux, mais peut aussi ˆetre adapt´e aux autres types de donn´ees.
Principe de fonctionnement
L’algorithme peut s’effectuer r´ecursivement :
1 Le premier ´el´ement de la liste `a trier est appel´e “pivot”.
2 On cr´ee un premier sous-enemble constitu´e des ´el´ements plus petits que le
pivot. On les place `a gauche du pivot dans l’ordre o`u ils sont dans la liste
`a trier.
3 On cr´ee de la mˆeme fa¸con un deuxi`eme sous-enemble constitu´e des
´el´ements plus grands que le pivot. On les place `a droite de celui-ci dans
l’ordre o`u ils apparaissent dans le tableau.
4 On proc`ede de mˆeme, par recursivit´e, sur les deux sous-ensembles jusqu’`a
obtenir des sous ensembles d’un seul ´el´ement.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 14/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
Exemple 1
On va illustrer le tri rapide sur le tableau T=[7,6,3,5,4,2,1].
On choisit comme Pivot une valeur al´eotoire du tableau T.
1. It´eration 1 : Pour trier T[0 :7], on choisit au hasard 4 comme pivot.
On place les ´el´ements plus petits que 4, puis 4, puis les autres.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 15/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
2. It´eration 2 : Pour trier T[0 :3], on choisit 3 comme pivot.
On place les ´el´ements plus petits que 3, puis 3, puis les autres.
3. It´eration 3 : Pour trier T[0 :2], on choisit 2 comme pivot..
On place les ´el´ements plus petits que 2, puis 2, puis les autres.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 16/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
4. It´eration 4 : Pour trier T[0 :3], on choisit 3 comme pivot.
On place les ´el´ements plus petits que 3, puis 3, puis les autres.
5. It´eration 5 : Pour trier T[0 :2], on choisit 2 comme pivot..
On place les ´el´ements plus petits que 2, puis 2, puis les autres.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 17/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
Exemple 2
On va illustrer le tri rapide sur le tableau T=[4,6,3,5,7,2,1] (Pivot=T[0]).
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 18/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri rapide
Tri rapide -Solution-
Pour impl´ementer l’algorithme tri rapide on a besoin de programmer quatre
fonctions :
1 La fonction Echange(T,i,j) pour ´echanger les ´el´ements T[i] et T[j] d’un
tableau T
2 La fonction Partition(T, premier, dernier) prend le tableau T et deux
indices premier et dernier en arguments, avec la convention que premier
est inclus et dernier exclu. On suppose qu’il y a au moins un ´el´ement dans
ce segment,
3 La fonction Tri Rapide Partition(T, premier, dernier) : qui permet de
trier une liste T en la partitionnant r´ecursivement en sous listes.
4 La fonction Tri Rapide(T) permettant de trier la liste T en uitlisant
l’algorithme tri rapide.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 19/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri rapide
La fonction Partition(T, premier, dernier)
void partition(int T[ ], int premier, int dernier)
{int gauche,droite, pivot = T[premier]
gauche = premier #On pointe gauche sur l’indice de pivot
droite = dernier
flag = 0
while (flag == 0){
while (T[droite] >= pivot and droite >= gauche){
droite = droite - 1 ;}
if (droite >= gauche){
Echange(T,gauche,droite) ;
pivot=T[droite] ;}
while (gauche <= droite and T[gauche] <= pivot){
gauche = gauche + 1 ;}
if (gauche <= droite){
Echange(T,gauche,droite) ;
pivot=T[gauche] ;}
if (droite < gauche){#condition d’arrˆet
flag = 1 ;}
}
return droite ;}
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 20/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri rapide
Tri rapide -Solution-
La fonction Echange(T,i,j)
void Echange(int T[ ],int i,int j)
.............
La fonction Tri Rapide Partition(T)
void Tri Rapide Partition(int T[ ], int premier,int dernier){
int m ;
if (premier < dernier){
m = partition(T, premier, dernier) ;
Tri Rapide Partition(T, premier, m-1) ;
Tri Rapide Partition(T, m+1, dernier) ;}
}
La fonction Tri Rapide(T)
void Tri Rapide(int T[ ], int N){
Tri Rapide Partition(T, 0,N-1) ;}
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 21/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Principe de tri fusion
D´efinition
Le tri fusion (merge sort) est un des premiers algorithmes invent´es pour trier un
tableau car (selon Donald Knuth) il aurait ´et´e propos´e par John von Neuman d`es
1945 ; il constitue un parfait exemple d’algorithme naturellement r´ecursif qui utilise le
concept de la programmation diviser pour r´egner.
Principe de fonctionnement
L’algorithme peut s’effectuer r´ecursivement :
1 On d´ecoupe en deux parties `a peu pr`es ´egales les donn´ees `a trier.
2 On trie les donn´ees de chaque partie.
3 On fusionne les deux parties.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 22/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
Exemple 1
On va illustrer le tri fusion sur le tableau T=[7,6,3,5,4,2,1,8].
• Pour trier T[0 :8], on trie T[0 :4] et T[4 :8].
• Pour trier T[0 :4], on trie T[0 :2] et T[2 :4].
• Pour trier T[0 :2], on trie T[0 :1] et T[1 :2].
• On fusionne T[0 :1] et T[1 :2].
• Pour trier T[2 :4], on trie T[2 :3] et T[3 :4].
• On fusionne T[0 :1] et T[1 :2]
• On fusionne T[0 :2] et T[2 :4].
• Pour trier T[4 :8], on trie T[4 :6] et T[6 :8].
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 23/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
• Pour trier T[4 :6], on trie T[4 :5] et T[5 :6].
• On fusionne T[4 :5] et T[5 :6]
• Pour trier T[6 :8], on trie T[6 :7] et T[7 :8].
• On fusionne T[6 :7] et T[7 :8].
• On fusionne T[4 :6] et T[6 :8].
• On fusionne T[0 :4] et T[4 :8].
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 24/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Des exemples d’illustration
Exemple 2
On va illustrer le tri fusion sur le tableau T=[3,4,6,2,5,1,8,7].
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 25/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri fusion
Tri fusion -Solution-
Pour impl´ementer l’algorithme tri fusion on a besoin de programmer trois
fonctions :
1 Une fonction it´erative Fusion(T1,T2,g,m,d) qui prend en arguments deux
tableaux, T1 et T2, et les trois indices g, m et d. Les portions a1[g..m[ et
a1[m..d[ sont suppos´ees tri´ees. Cette fonction permet d’effectuer la fusion
de ces deux portions.
2 La fonction r´ecursive Tri Fusion Rec(T,g, d) prend en arguments les
indices g et d d´elimitant la portion `a trier. Si le segment contient au plus
un ´el´ement, c’est-`a-dire si g >= d − 1, il n’y a rien `a faire. Sinon, on
partage l’intervalle en deux moiti´es ´egales : on calcule l’´el´ement m´edian
m, puis on trie r´ecursivement T[g..m[ et T[m..d[.
3 Une fonction Tri Fusion(T) permettant de trier la liste T en uitlisant
l’algorithme tri fusion.
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 26/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri fusion
Tri fusion -Solution-
Programme it´eratif Fusion(T1,T2,g,m,d)
void Fusion(int T1[ ], int T2[ ], int g, int m, int d)
....
....
.....
....
.....
.....
....
.....
.....
....
.....
.....
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 27/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri fusion
Tri fusion -Solution-
Le code complet :Tri Fusion Rec(T,g,d)
void Tri Fusion Rec(int T[ ], int g, int d)
....
....
.....
....
.....
.....
....
.....
.....
....
.....
.....
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 28/ 29
Les algorithmes de recherche
Les algorithmes de tris classiques
Les algorithmes de tris rapides
Tri rapide
Tri fusion
Impl´ementation de l’algorithme de tri fusion
Tri fusion -Solution-
Le code complet : Tri Fusion(T)
void Tri Fusion(int T[ ], int N)
....
....
.....
....
.....
.....
....
.....
.....
....
.....
.....
Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 29/ 29

Contenu connexe

Tendances

Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binairesSana Aroussi
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfRedaBelattar
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeursSana REFAI
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données yassine kchiri
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Sana Aroussi
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 

Tendances (20)

Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de Données
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeurs
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 

En vedette

Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Trilotfibenromdhane
 
Labyrinthes
LabyrinthesLabyrinthes
Labyrinthesartxtra
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage CMohamed Lahby
 
Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Mohamed Lahby
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueMohamed Lahby
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIMohamed Lahby
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 

En vedette (13)

Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
 
Labyrinthes
LabyrinthesLabyrinthes
Labyrinthes
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
Langage c partie_2
Langage c partie_2Langage c partie_2
Langage c partie_2
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmique
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSI
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Animations tris
Animations trisAnimations tris
Animations tris
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 

Similaire à Chapitre 3 Les algorithmes de recherche et de tris

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
L’analyse et Expérimentation de algorithme du Tri par sélection
L’analyse et Expérimentation de algorithme du Tri par sélectionL’analyse et Expérimentation de algorithme du Tri par sélection
L’analyse et Expérimentation de algorithme du Tri par sélectionyoucefsama
 
Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcRémi Bachelet
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN CProjet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN CEnochBidima3
 
Un algorithme pour trouver le dénominateur commun de plusieurs fractions
Un algorithme pour trouver le dénominateur commun de plusieurs fractionsUn algorithme pour trouver le dénominateur commun de plusieurs fractions
Un algorithme pour trouver le dénominateur commun de plusieurs fractionsClément Boulonne
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdfSongSonfack
 
Chapitre 2 - Les algorithmes de recherche et de tri.pdf
Chapitre 2 - Les algorithmes de recherche et de tri.pdfChapitre 2 - Les algorithmes de recherche et de tri.pdf
Chapitre 2 - Les algorithmes de recherche et de tri.pdfShiniGami0o0
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications Ibrahim Chegrane
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdfMbarkiIsraa
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).vangogue
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxPROFPROF11
 
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...Soumia Elyakote HERMA
 

Similaire à Chapitre 3 Les algorithmes de recherche et de tris (20)

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
L’analyse et Expérimentation de algorithme du Tri par sélection
L’analyse et Expérimentation de algorithme du Tri par sélectionL’analyse et Expérimentation de algorithme du Tri par sélection
L’analyse et Expérimentation de algorithme du Tri par sélection
 
Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afc
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN CProjet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
 
algo-imsi-2.pdf
algo-imsi-2.pdfalgo-imsi-2.pdf
algo-imsi-2.pdf
 
Un algorithme pour trouver le dénominateur commun de plusieurs fractions
Un algorithme pour trouver le dénominateur commun de plusieurs fractionsUn algorithme pour trouver le dénominateur commun de plusieurs fractions
Un algorithme pour trouver le dénominateur commun de plusieurs fractions
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Chapitre 2 - Les algorithmes de recherche et de tri.pdf
Chapitre 2 - Les algorithmes de recherche et de tri.pdfChapitre 2 - Les algorithmes de recherche et de tri.pdf
Chapitre 2 - Les algorithmes de recherche et de tri.pdf
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Algo3.pdf
Algo3.pdfAlgo3.pdf
Algo3.pdf
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptx
 
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...
Expérimentation et interprétation des algorithmes de tri élémentaires tp algo...
 
Algorithmique iii
Algorithmique iiiAlgorithmique iii
Algorithmique iii
 

Dernier

LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 

Dernier (20)

LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 

Chapitre 3 Les algorithmes de recherche et de tris

  • 1. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Chapitre 3 Les algorithmes de recherche et de tris Module 20: Informatique 3 Algorithmique et programmation C 2´eme ANNEE LICENCE D’ENSEIGNEMENT DE MATHEMATIQUES (LEM) 2´eme ANNEE LICENCE CRYPTO MATHEMATIQUE ET SECURITE DE L’INFORMATION (LCMSI) Texte Texte Texte mlahby@gmail.com 7 novembre 2016 Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 1/ 29
  • 2. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Plan 1 Les algorithmes de recherche Recherche s´equentielle Recherche dichotomique dans un tableau tri´e 2 Les algorithmes de tris classiques Tri par s´election Tri par bulle Tri par insertion 3 Les algorithmes de tris rapides Tri rapide Tri fusion Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 2/ 29
  • 3. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Recherche s´equentielle Recherche dichotomique dans un tableau tri´e Recherche s´equentielle Principe de l’algorithme On cherche `a d´eterminer si un tableau contient une certaine valeur. On parcours le tableau ´el´ement par ´el´ement, et on interrompre le parcours d`es que l’´el´ement est trouv´e. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 3/ 29
  • 4. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Recherche s´equentielle Recherche dichotomique dans un tableau tri´e Recherche s´equentielle Solution 1 int Recherche Seq(int T[],int N, int x) {int i=0 ; while (i<N and T[i] !=x) {i=i+1 ; } if (i<N) return 1 ; else return 0 ; } Solution 2 int Recherche Seq(int T[],int N, int x) {int i=0 ; for (i=0 ;i < N ;i++) if (T[i]==x) return 1 ; return 0 ; } Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 4/ 29
  • 5. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Recherche s´equentielle Recherche dichotomique dans un tableau tri´e Recherche s´equentielle Complexit´e la complexit´e est O(n) Inconv´enient Cet algorithme est d´econseill´e pour les tableaux tri´es. Un dictionnaire contient de l’ordre de 105 mots Si un test prend 0,01s, une recherche compl`ete prendrait plus de un 1minute 30 s. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 5/ 29
  • 6. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Recherche s´equentielle Recherche dichotomique dans un tableau tri´e Recherche dichotomique dans un tableau tri´e Principe de l’algorithme la recherche d’un ´el´ement dans un tableau avec la m´ethode de dichotomique requiert un tableau tri´e. On on coupe le tableau en deux par le milieu et on d´etermine si la valeur x doit ˆetre recherch´ee dans la moiti´e gauche ou droite En effet, il suffit pour cela de la comparer avec la valeur centrale. Puis, on r´ep`ete le processus sur la portion s´electionn´ee. . Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 6/ 29
  • 7. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Recherche s´equentielle Recherche dichotomique dans un tableau tri´e Recherche dichotomique dans un tableau tri´e D´efinition de la fonction int RechDichotomique(int T[],int N, int x) {int g, d, m ; g=0 ; d=N-1 ; while(g<=d) { m=(g+d)/2 ; if (T[m]==x) return 1 ; if (T[m]<x) g=m+1 ; else d=m-1 ; } return 0 ; } Complexit´e la complexit´e de la recherche dichotomique est O(log(n)) Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 7/ 29
  • 8. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par s´election Principe Le tri par s´election consiste `a chercher la plus petite valeur de la liste, puis de la mettre `a la derni`ere place en l’´echangeant avec la premi`ere valeur. On r´eit`ere alors le proc´ed´e sur la liste restreinte aux nombres restants et cela jusqu’`a obtenir la liste tri´ee. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 8/ 29
  • 9. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par s´election La fonction TriSelection(T,n) void TriSelection(int T[],int n) : {int i,j,Posmin,Tmp ; for(i=0 ;i<n-1 ;i++) { Posmin=i ; for(j=i+1 ;i<n ;i++){ if (T[j]<T[Posmin]) Posmin=j ;} /*****Permutation******/ Tmp=T[i] ; T[i]=T[Posmin] ; T[Posmin]=Tmp ; } } Complexit´e la complexit´e est O(n2) Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 9/ 29
  • 10. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par bulle Principe Le principe du tri par bulle consiste `a comparer deux `a deux les ´el´ements e1 et e2 cons´ecutifs d’un tableau et d’effecteur une permutation si e1 > e2. On continue de trier jusqu’`a ce qu’il n’y ait plus de permutation. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 10/ 29
  • 11. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par bulle La fonction TriBulle(T,n) void TriBulle(int T[ ],int n) {int i,Tmp,inversion=1 ; while (inversion) { inversion=0 ; for(i=0 ;i<n-1 ;i++) if (T[i]>T[i+1]){ /*****Permutation*****/ Tmp=T[i] ; T[i]=T[i+1] ; T[i+1]=Tmp ; inversion=1 ;} } } Complexit´e la complexit´e est O(n2) Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 11/ 29
  • 12. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par insertion Principe Le tri par insertion consiste `a ins´erer le premier ´el´ement `a trier au premier emplacement d’une nouvelle liste, puis on ins`ere chaque nouvel ´el´ement `a sa bonne place dans la liste d`ej`a tri´ee. On r´eit`ere alors le proc´ed´e jusqu’`a avoir replac´e tous les ´el´ements de la liste initiale. (jeu de cartes ou un paquet de copies). Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 12/ 29
  • 13. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri par s´election Tri par bulle Tri par insertion Tri par insertion La fonction TriInsertion(T,n) void TriInsertion(int T[ ],int n) {int i,j,Tmp ; for(i=0 ;i<n ;i++) { j=i-1 ; while (j>=0 and T[j]>T[j+1]) { /********Permutation********/ Temp=T[j] ; T[j]=T[j+1] ; T[j+1]=Tmp ; j=j-1 ; } } } Complexit´e la complexit´e est O(n2) Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 13/ 29
  • 14. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Principe de tri rapide D´efinition Le tri rapide (en anglais quicksort) est un algorithme de tri invent´e par C.A.R. Hoare en 1961 et fond´e sur la m´ethode de conception diviser pour r´egner. Il est g´en´eralement utilis´e sur des tableaux, mais peut aussi ˆetre adapt´e aux autres types de donn´ees. Principe de fonctionnement L’algorithme peut s’effectuer r´ecursivement : 1 Le premier ´el´ement de la liste `a trier est appel´e “pivot”. 2 On cr´ee un premier sous-enemble constitu´e des ´el´ements plus petits que le pivot. On les place `a gauche du pivot dans l’ordre o`u ils sont dans la liste `a trier. 3 On cr´ee de la mˆeme fa¸con un deuxi`eme sous-enemble constitu´e des ´el´ements plus grands que le pivot. On les place `a droite de celui-ci dans l’ordre o`u ils apparaissent dans le tableau. 4 On proc`ede de mˆeme, par recursivit´e, sur les deux sous-ensembles jusqu’`a obtenir des sous ensembles d’un seul ´el´ement. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 14/ 29
  • 15. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration Exemple 1 On va illustrer le tri rapide sur le tableau T=[7,6,3,5,4,2,1]. On choisit comme Pivot une valeur al´eotoire du tableau T. 1. It´eration 1 : Pour trier T[0 :7], on choisit au hasard 4 comme pivot. On place les ´el´ements plus petits que 4, puis 4, puis les autres. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 15/ 29
  • 16. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration 2. It´eration 2 : Pour trier T[0 :3], on choisit 3 comme pivot. On place les ´el´ements plus petits que 3, puis 3, puis les autres. 3. It´eration 3 : Pour trier T[0 :2], on choisit 2 comme pivot.. On place les ´el´ements plus petits que 2, puis 2, puis les autres. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 16/ 29
  • 17. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration 4. It´eration 4 : Pour trier T[0 :3], on choisit 3 comme pivot. On place les ´el´ements plus petits que 3, puis 3, puis les autres. 5. It´eration 5 : Pour trier T[0 :2], on choisit 2 comme pivot.. On place les ´el´ements plus petits que 2, puis 2, puis les autres. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 17/ 29
  • 18. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration Exemple 2 On va illustrer le tri rapide sur le tableau T=[4,6,3,5,7,2,1] (Pivot=T[0]). Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 18/ 29
  • 19. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri rapide Tri rapide -Solution- Pour impl´ementer l’algorithme tri rapide on a besoin de programmer quatre fonctions : 1 La fonction Echange(T,i,j) pour ´echanger les ´el´ements T[i] et T[j] d’un tableau T 2 La fonction Partition(T, premier, dernier) prend le tableau T et deux indices premier et dernier en arguments, avec la convention que premier est inclus et dernier exclu. On suppose qu’il y a au moins un ´el´ement dans ce segment, 3 La fonction Tri Rapide Partition(T, premier, dernier) : qui permet de trier une liste T en la partitionnant r´ecursivement en sous listes. 4 La fonction Tri Rapide(T) permettant de trier la liste T en uitlisant l’algorithme tri rapide. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 19/ 29
  • 20. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri rapide La fonction Partition(T, premier, dernier) void partition(int T[ ], int premier, int dernier) {int gauche,droite, pivot = T[premier] gauche = premier #On pointe gauche sur l’indice de pivot droite = dernier flag = 0 while (flag == 0){ while (T[droite] >= pivot and droite >= gauche){ droite = droite - 1 ;} if (droite >= gauche){ Echange(T,gauche,droite) ; pivot=T[droite] ;} while (gauche <= droite and T[gauche] <= pivot){ gauche = gauche + 1 ;} if (gauche <= droite){ Echange(T,gauche,droite) ; pivot=T[gauche] ;} if (droite < gauche){#condition d’arrˆet flag = 1 ;} } return droite ;} Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 20/ 29
  • 21. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri rapide Tri rapide -Solution- La fonction Echange(T,i,j) void Echange(int T[ ],int i,int j) ............. La fonction Tri Rapide Partition(T) void Tri Rapide Partition(int T[ ], int premier,int dernier){ int m ; if (premier < dernier){ m = partition(T, premier, dernier) ; Tri Rapide Partition(T, premier, m-1) ; Tri Rapide Partition(T, m+1, dernier) ;} } La fonction Tri Rapide(T) void Tri Rapide(int T[ ], int N){ Tri Rapide Partition(T, 0,N-1) ;} Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 21/ 29
  • 22. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Principe de tri fusion D´efinition Le tri fusion (merge sort) est un des premiers algorithmes invent´es pour trier un tableau car (selon Donald Knuth) il aurait ´et´e propos´e par John von Neuman d`es 1945 ; il constitue un parfait exemple d’algorithme naturellement r´ecursif qui utilise le concept de la programmation diviser pour r´egner. Principe de fonctionnement L’algorithme peut s’effectuer r´ecursivement : 1 On d´ecoupe en deux parties `a peu pr`es ´egales les donn´ees `a trier. 2 On trie les donn´ees de chaque partie. 3 On fusionne les deux parties. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 22/ 29
  • 23. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration Exemple 1 On va illustrer le tri fusion sur le tableau T=[7,6,3,5,4,2,1,8]. • Pour trier T[0 :8], on trie T[0 :4] et T[4 :8]. • Pour trier T[0 :4], on trie T[0 :2] et T[2 :4]. • Pour trier T[0 :2], on trie T[0 :1] et T[1 :2]. • On fusionne T[0 :1] et T[1 :2]. • Pour trier T[2 :4], on trie T[2 :3] et T[3 :4]. • On fusionne T[0 :1] et T[1 :2] • On fusionne T[0 :2] et T[2 :4]. • Pour trier T[4 :8], on trie T[4 :6] et T[6 :8]. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 23/ 29
  • 24. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration • Pour trier T[4 :6], on trie T[4 :5] et T[5 :6]. • On fusionne T[4 :5] et T[5 :6] • Pour trier T[6 :8], on trie T[6 :7] et T[7 :8]. • On fusionne T[6 :7] et T[7 :8]. • On fusionne T[4 :6] et T[6 :8]. • On fusionne T[0 :4] et T[4 :8]. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 24/ 29
  • 25. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Des exemples d’illustration Exemple 2 On va illustrer le tri fusion sur le tableau T=[3,4,6,2,5,1,8,7]. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 25/ 29
  • 26. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri fusion Tri fusion -Solution- Pour impl´ementer l’algorithme tri fusion on a besoin de programmer trois fonctions : 1 Une fonction it´erative Fusion(T1,T2,g,m,d) qui prend en arguments deux tableaux, T1 et T2, et les trois indices g, m et d. Les portions a1[g..m[ et a1[m..d[ sont suppos´ees tri´ees. Cette fonction permet d’effectuer la fusion de ces deux portions. 2 La fonction r´ecursive Tri Fusion Rec(T,g, d) prend en arguments les indices g et d d´elimitant la portion `a trier. Si le segment contient au plus un ´el´ement, c’est-`a-dire si g >= d − 1, il n’y a rien `a faire. Sinon, on partage l’intervalle en deux moiti´es ´egales : on calcule l’´el´ement m´edian m, puis on trie r´ecursivement T[g..m[ et T[m..d[. 3 Une fonction Tri Fusion(T) permettant de trier la liste T en uitlisant l’algorithme tri fusion. Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 26/ 29
  • 27. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri fusion Tri fusion -Solution- Programme it´eratif Fusion(T1,T2,g,m,d) void Fusion(int T1[ ], int T2[ ], int g, int m, int d) .... .... ..... .... ..... ..... .... ..... ..... .... ..... ..... Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 27/ 29
  • 28. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri fusion Tri fusion -Solution- Le code complet :Tri Fusion Rec(T,g,d) void Tri Fusion Rec(int T[ ], int g, int d) .... .... ..... .... ..... ..... .... ..... ..... .... ..... ..... Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 28/ 29
  • 29. Les algorithmes de recherche Les algorithmes de tris classiques Les algorithmes de tris rapides Tri rapide Tri fusion Impl´ementation de l’algorithme de tri fusion Tri fusion -Solution- Le code complet : Tri Fusion(T) void Tri Fusion(int T[ ], int N) .... .... ..... .... ..... ..... .... ..... ..... .... ..... ..... Module 20: Informatique 3 Algorithmique et programmation C ENS Casablanca 2016-2017 29/ 29