SlideShare uma empresa Scribd logo
1 de 23
République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université de Ghardaïa
PAR :
Soumia Elyakote HERMA
ANNEE UNIVERSITAIRE: 2014/2015
Module : Conception et Analyse des Algorithmes
TP N° 01:
Enseignant :
Slimane BELLAOUAR
Expérimentation et interprétation des
Algorithmes de tri élémentaires
Plan
• Introduction au Tri Sélection
• Implémentation de l’algorithme de tri par
sélection
• Expérimentations sur des données déférentes
• Exécution sur java
• Représentation et interprétation des résultats
• les résultats des comparaisons
• Les graphes correspondants
• Les Calculs
• Les Résultats
• Les graphes correspondent des échanges
• Remarque sur les comparaisons & les échanges
Tri de sélection
• Coup d’œil sur le Tri par Insertion
L’idée est de trier un tableau en déterminant son
plus petit, son deuxième plus petit, troisième plus petit
…etc. C’est à dire trouver la position du plus petit élément
dans le tableau et ensuite échanger a[0] et a[i1]. Ensuite,
déterminer la position i2 de l’élément avec le plus petit
des a[1],………..a[N-1] et échanger a[1] et a[i2]. On
continue de cette manière jusqu’à ce que tous les
éléments soient dans la position correcte.
Le tri par sélection:
Implémentation de l’algorithme de tri par sélection :
public class SelectionSortGenerics {
private static void exch(Comparable[] a, int i, int j)
{ Comparable t = a[i]; a[i] = a[j]; a[j] = t; }
private static boolean less(Comparable v, Comparable w)
{ return v.compareTo(w) < 0; }
public <Object extends Comparable<Object>>void selectionSort(Object[] a) {
int compt_exch= 0;
int N = a.length;
int compt_if= 0;
for (int i = 0; i <N - 1; i++)
{
// find index of smallest element
int smallest = i;
for (int j = i + 1; j < N; j++)
{ compt_if++;
if (less(a[j], a[smallest])) smallest = j;
}
exch(a, i, smallest); // swap smallest to front
compt_exch++;
}
System.out.println("comparisons operations : "+compt_if+" + exchanges operations :
"+compt_exch);
}
Class main:
public static void main(String[] args){
SelectionSortGenerics sorting = new SelectionSortGenerics();
int n1 = 750;
Integer[] arr01 = new Integer[n1] ;
Integer[] arr01 = new Integer[n1] ;
for (Integer i=0; i<n1; i++)
{ arr01[i] = (i); }
System.out.println(" *** expérimentation sur des données d''entrées triées ***");
System.out.println("before sorting tab01 : "+ Arrays.toString(arr01));
sorting.selectionSort (arr01);
System.out.println("After sorting tab01 : "+Arrays.toString(arr01));
System.out.println();
Integer[] arr03 = new Integer[n1] ;
for (Integer i=0; i<n1; i++)
{ arr03[i] = (n1-i); }
System.out.println(" *** expérimentation sur des données d''entrées trié à l''envers ***");
System.out.println("before sorting tab03 : "+ Arrays.toString(arr03));
sorting.selectionSort(arr03);
System.out.println("After sorting tab03 : "+Arrays.toString(arr03));
System.out.println();
Integer[] arr02 = new Integer[n1] ;
for (Integer i=0; i<n1; i++)
{ arr02[i] =(int)(Math.random()*128); }
System.out.println(" *** expérimentation sur des données d''entrées aléatoire ***");
System.out.println("before sorting tab02 : "+ Arrays.toString(arr02));
sorting.selectionSort(arr02);
System.out.println("After sorting tab02 : "+Arrays.toString(arr02));
}
Expérimentations sur des données déférentes :
On a exécuté le code sur des tableaux des entiers avec des tailles
déférentes :
Algorithmes de tri par sélection :
Exemple d’exécution :
*** expérimentation sur des données d''entrées aléatoire ***
before sorting tab1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
tab2 : [100, 99, .., , 3, 2, 1]
tab3 : [1000, 999, .., 3, 2, 1]
comparisons operations : 45 + exchanges operations : 9
comparisons operations : 4950 + exchanges operations : 99
comparisons operations : 499500 + exchanges operations : 999
After sorting tab1 : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
tab2[1, 2, 3, 4, 5.. 98, 99, 100]
tab3[1, 2, 3, 4, 5...998,999,1000
Exécution sur java:
Représentation et interprétation des résultats :
Il est facile de compter le nombre d'opérations
nécessaires. A chaque itération, on démarre à
l'élément ai et on le compare successivement à ai+1, ai+2,
..., aN. On fait donc N - i comparaisons.
On commence avec i = 1 et on finit avec i = N-1. Donc on
fait (N-1) + (N-2) + ··· + 2 + 1 = N(N-1)/2 comparaisons, et N-1
échanges. Le tri par sélection fait donc de l'ordre
de N2 comparaisons.
Donc , le tri par sélection est en O(N2). Ses nombres de
comparaison par rapport aux nombres d'éléments du tableau.
tableau représente les résultats des
comparaisons :
les comparaison C(n)
Taille(n) trié aléatoire trié à l'envers
Lg2( n ) Lg2 (C(n))
100 4950 4950 4950 6,643856 12,27321
200 19900 19900 19900 7,643856 14,28048
300 44850 44850 44850 8,228819 15,45282
400 79800 79800 79800 8,643856 16,2841
500 124750 124750 124750
8,965784 16,92868
600 179700 179700 179700
9,228819 17,45523
700 244650 244650 244650
9,451211 17,90036
800 319600 319600 319600
9,643856 18,28591
900 404550 404550 404550
9,813781 18,62596
1000 499500 499500 499500
9,965784 18,93013
Les graphes correspondants :
0
100000
200000
300000
400000
500000
600000
Nbr Comparaisons pàp au
Taille (Sélection)
trié
aléat
trié à
l'envers
0
2
4
6
8
10
12
14
16
18
20
6.64385619 7.64385619 8.64385619 9.64385619
lg comparaison
lg
compara
ison
En Calculant :
On remarque « log C(N) » est une droite, son formule est :
log C(N)= b* log(N) + c.
Trouvons b et c:
b =
log(Cn+i)− log(Cn)
log(n+i)− log(n)
,  b = 2,001180586
c = log C(N) – b * log(N),  c= -1,014653114
C (N) = a Nb, où  a = 2c = 0,493116
Hypothèse: C (N) =0.493116* N2.001180586
Le nombre d’opérations de comparaisons estimé
pour N=650 est:
C(650) = 0.493116* (6502.001180586) = 1888489
(179700<1888489<244650)
600 650 700
Résultat :
-Avec le tri par sélection, le nombre de
comparaisons de clés ne dépendent pas de la
nature du tableau (presque trié, non trié et trié
dans l’ordre inverse)
• La complexité en nombre de comparaisons pour le tri
par sélection est donc :
MaxC(N)=MinC (N)=MoyC(N) =N(N-1)/2
= O(N^2)
Représentation et interprétation des résultats
Pour chaque N taille éléments d’entrées l’algo de tri fait N
opérations d’échanges .
tableau représente les résultats des échanges :
les échanges E(n)
Taille(n) trié aléatoire trié à l'envers
100 99 99 99
200 199 199 199
300 299 299 299
400 399 399 399
500 499 499 499
600 599 599 599
700 699 699 699
800 799 799 799
900 899 899 899
1000 999 999 999
Les graphes correspondent (des échanges ) :
0
200
400
600
800
1000
1200
1 2 3 4 5 6 7 8 9 10
Nbr Echanges pàp Taille
(Sélection)
des entrées triées
des entrées aléatoires
des entrées triées a
l'envers
Evidement ;
le graph « E(N) » est une droite, son
formule est : E(N)= a(N) + b.
Trouvons a et b:
 b = 1
 a = 0.99
Hypothèse: E (N) = (0.99)(N)
+ 1
Le nombre d’opérations
d’échanges estimé pour
N=650 est:
E(650) = (0.99)(650) + 1 =643
(599< 643 <699)
600 650 700
Résultat :
Aussi pour les échanges, la complexité au pire des cas est
égale à la complexité en moyenne. Puisqu’on fait au maximum
un seul échange à chaque parcours de la boucle FOR interne de
l’algorithme implémenté.
Comme on a N éléments dans le tableau. On a donc :
MaxE(N)= N-1
Remarque sur les comparaisons & les échanges :
Tri de sélection :
tri de sélection
Taille comparaison échange
100 4950 99
200 19900 199
300 44850 299
400 79800 399
500 124750 499
600 179700 599
0
20000
40000
60000
80000
100000
120000
140000
1 2 3 4 5 6
compara
isons
échanges
En remarquant que le tri
par sélection prendre une
technique insensible :
-une complexité de O(n2)
pour les opérations de
comparaison et O(n) pour les
échanges ; ça ce présente malgré
que les données d’entrées soit
triées (ou partiellement triées).
Coup d’oeil sur le tir par Insertion:
L’idée est de trier successivement les
premiers éléments du tableau.
A la ième étape on insère le ième élément à
son rang parmi les i-1 éléments précédents qui sont
déjà triés entre eux.
L’algorithme commence par s’exécuter à
partir du 2ème élément du tableau.
Coup d’oeil sur le tir par Insertion:
0
100000
200000
300000
400000
500000
600000
Nbr Comparaison prp au
Taille (Insertion)
trié
aléat
trié à
l'envers
0
2
4
6
8
10
12
14
16
18
20
lg comparaison
lg
comparai
son
Le graphe correspondent au résultats des comparaison du tri d’Insertion :
Résultat :
• Pour insérer le i-ème élément, quel que soit
l’état des entrées (triés, non triées) nous avons
au moins 1 et au plus i-1 comparaisons à faire.
• On a donc: la complexité est O(N^2)
Le graphe correspondent au résultats des échanges du
tri d’Insertion :
0
100000
200000
300000
400000
500000
600000
100 200 300 400 500 600 700 800 900 1000
Nbr Echanges prp au Taille
(Insertion)
Trié
Aléatoire
Trié à
l'envers
0
2
4
6
8
10
12
14
16
18
20
lg
Alétoire
lg Trié à
l'envers
Résultat :
• la méthode de tri par insertion fait
uniquement des échanges. Tel que;
• On compte i-1 échanges dans le meilleur des cas (le
comportement avec le tableau déjà trié). D’où :
MinE(N)=0
• Avec un tableau trié dans l’ordre inverse, ce qui, est le
pire des cas :
• Le nombre de mouvements maximal se calcule
graphiquement (comme les calcules de tri sélection)
• La complexité du nombre de mouvements
maximal est :
MoyM(N) = O(N^2)
Remarque sur les comparaisons & les échanges :
Tri d’Insertion :
tri de sélection
Taille comparaison échange
100 4950 2198
200 19900 9120
300 44850 21975
400 79800 39572
500 124750 65053
600 179700 91026
0
20000
40000
60000
80000
100000
120000
140000
160000
180000
1 2 3 4 5 6
compar
aisons
échang
es
- Le tri par Insertion suit
une méthode (technique de tri)
sensible :
-une complexité de O(n2)
pour les comparaisons et O(n2)
comme échanges, (dans le pire
des cas), et elle diminue
(échanges) selon la taille des
données .
-si les données d’entrées sont
trié (partiellement triée) le tri fait
Conclusion
L’algorithme du tri par sélection est simple,
mais peu efficace à cause de sa complexité (
spécialement le coût d’opérations des
comparaisons (selon le type de clé de
comparaison)) bien qu’elle utile par à port au
autre méthodes de tri si on traite des données de
type et de taille plus important.
Egalement, une propriété importante du tri
par insertion : est son efficacité est meilleure si le
tableau initial possède un certain ordre.

Mais conteúdo relacionado

Mais procurados

Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
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
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court cheminSana Aroussi
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerSana Aroussi
 
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
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 

Mais procurados (18)

Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
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).
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
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
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Tp4 matlab
Tp4 matlabTp4 matlab
Tp4 matlab
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 

Destaque

10 algos de tri
10   algos de tri10   algos de tri
10 algos de trikosss420
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmiqueelharraj
 
Gibran yloshijos
Gibran yloshijosGibran yloshijos
Gibran yloshijosbernal27
 
French Startups Deals, Q2 2014
French Startups Deals, Q2 2014French Startups Deals, Q2 2014
French Startups Deals, Q2 2014SOURCINNO
 
Was die Entwicklung von Websites und Apps wirklich kosten
Was die Entwicklung von Websites und Apps wirklich kostenWas die Entwicklung von Websites und Apps wirklich kosten
Was die Entwicklung von Websites und Apps wirklich kostenJoachim Graf
 
Etude Home'n'go : 10ans d'impôts locaux
Etude Home'n'go : 10ans d'impôts locauxEtude Home'n'go : 10ans d'impôts locaux
Etude Home'n'go : 10ans d'impôts locauxMonimmeuble.com
 
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3d
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3dRealidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3d
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3djaviertecteos
 
Metodología de la Investigación
Metodología de la InvestigaciónMetodología de la Investigación
Metodología de la InvestigaciónNombre Apellidos
 
New Strategies on eGov Portals
New Strategies on eGov PortalsNew Strategies on eGov Portals
New Strategies on eGov PortalsAlexander Szlezak
 
Exemple d'utilisation de super
Exemple d'utilisation de superExemple d'utilisation de super
Exemple d'utilisation de superkissingerman
 
Pythagore
PythagorePythagore
PythagoreAlice
 
Petite introduction aux expressions rationnelles
Petite introduction aux expressions rationnellesPetite introduction aux expressions rationnelles
Petite introduction aux expressions rationnellesGregoire Lejeune
 

Destaque (20)

10 algos de tri
10   algos de tri10   algos de tri
10 algos de tri
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Vihsida tema5-inf2-unifranz
Vihsida tema5-inf2-unifranzVihsida tema5-inf2-unifranz
Vihsida tema5-inf2-unifranz
 
Gibran yloshijos
Gibran yloshijosGibran yloshijos
Gibran yloshijos
 
My pdf
My pdfMy pdf
My pdf
 
Adn mp3
Adn mp3Adn mp3
Adn mp3
 
French Startups Deals, Q2 2014
French Startups Deals, Q2 2014French Startups Deals, Q2 2014
French Startups Deals, Q2 2014
 
Chat magique
Chat magiqueChat magique
Chat magique
 
Ppgess
PpgessPpgess
Ppgess
 
Sapro
SaproSapro
Sapro
 
Was die Entwicklung von Websites und Apps wirklich kosten
Was die Entwicklung von Websites und Apps wirklich kostenWas die Entwicklung von Websites und Apps wirklich kosten
Was die Entwicklung von Websites und Apps wirklich kosten
 
Etude Home'n'go : 10ans d'impôts locaux
Etude Home'n'go : 10ans d'impôts locauxEtude Home'n'go : 10ans d'impôts locaux
Etude Home'n'go : 10ans d'impôts locaux
 
Vihsida tema5-inf2-unifranz
Vihsida tema5-inf2-unifranzVihsida tema5-inf2-unifranz
Vihsida tema5-inf2-unifranz
 
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3d
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3dRealidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3d
Realidad Aumentada 11 meetup en tarragona - Encuentro de impresion 3d
 
Das Abonnement 2011/2012
Das Abonnement 2011/2012Das Abonnement 2011/2012
Das Abonnement 2011/2012
 
Metodología de la Investigación
Metodología de la InvestigaciónMetodología de la Investigación
Metodología de la Investigación
 
New Strategies on eGov Portals
New Strategies on eGov PortalsNew Strategies on eGov Portals
New Strategies on eGov Portals
 
Exemple d'utilisation de super
Exemple d'utilisation de superExemple d'utilisation de super
Exemple d'utilisation de super
 
Pythagore
PythagorePythagore
Pythagore
 
Petite introduction aux expressions rationnelles
Petite introduction aux expressions rationnellesPetite introduction aux expressions rationnelles
Petite introduction aux expressions rationnelles
 

Semelhante a Expérimentation et interprétation des algorithmes de tri élémentaires tp algo n°01

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
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
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Les Filtres Numeriques
Les Filtres NumeriquesLes Filtres Numeriques
Les Filtres NumeriquesSAHELAicha
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptxMohammedErritali2
 
cours TRI selection insertion bublle sort
cours TRI selection insertion bublle sortcours TRI selection insertion bublle sort
cours TRI selection insertion bublle sortYounesOuladSayad1
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP Mohammed TAMALI
 
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
 

Semelhante a Expérimentation et interprétation des algorithmes de tri élémentaires tp algo n°01 (20)

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
246242769 sequence-1-pdf
246242769 sequence-1-pdf246242769 sequence-1-pdf
246242769 sequence-1-pdf
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Cours d'algorithmique
Cours d'algorithmiqueCours d'algorithmique
Cours d'algorithmique
 
E.N.pdf
E.N.pdfE.N.pdf
E.N.pdf
 
Correction td2
Correction td2Correction td2
Correction td2
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
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
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Les Filtres Numeriques
Les Filtres NumeriquesLes Filtres Numeriques
Les Filtres Numeriques
 
Matrices
MatricesMatrices
Matrices
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
 
cours TRI selection insertion bublle sort
cours TRI selection insertion bublle sortcours TRI selection insertion bublle sort
cours TRI selection insertion bublle sort
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Video
VideoVideo
Video
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP
 
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
 

Mais de Soumia Elyakote HERMA

Memoire licence informatique application gestion personnel par herma - zita...
Memoire licence  informatique application gestion personnel  par herma - zita...Memoire licence  informatique application gestion personnel  par herma - zita...
Memoire licence informatique application gestion personnel par herma - zita...Soumia Elyakote HERMA
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Soumia Elyakote HERMA
 
Analyse des Sentiments -cas twitter- "Opinion Detection with Machine Lerning "
Analyse des Sentiments  -cas twitter- "Opinion Detection with Machine Lerning "Analyse des Sentiments  -cas twitter- "Opinion Detection with Machine Lerning "
Analyse des Sentiments -cas twitter- "Opinion Detection with Machine Lerning "Soumia Elyakote HERMA
 
Analyse des sentiments cas twitter - univ ghardaia algerie
Analyse des sentiments  cas twitter - univ ghardaia algerieAnalyse des sentiments  cas twitter - univ ghardaia algerie
Analyse des sentiments cas twitter - univ ghardaia algerieSoumia Elyakote HERMA
 
Compte rendu : Le routage dynamique RIP V1
Compte rendu : Le routage dynamique RIP V1Compte rendu : Le routage dynamique RIP V1
Compte rendu : Le routage dynamique RIP V1Soumia Elyakote HERMA
 
Diapo fin d'étude bdd université ghardaia licence informatique
Diapo fin d'étude bdd université ghardaia  licence informatiqueDiapo fin d'étude bdd université ghardaia  licence informatique
Diapo fin d'étude bdd université ghardaia licence informatiqueSoumia Elyakote HERMA
 

Mais de Soumia Elyakote HERMA (6)

Memoire licence informatique application gestion personnel par herma - zita...
Memoire licence  informatique application gestion personnel  par herma - zita...Memoire licence  informatique application gestion personnel  par herma - zita...
Memoire licence informatique application gestion personnel par herma - zita...
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)
 
Analyse des Sentiments -cas twitter- "Opinion Detection with Machine Lerning "
Analyse des Sentiments  -cas twitter- "Opinion Detection with Machine Lerning "Analyse des Sentiments  -cas twitter- "Opinion Detection with Machine Lerning "
Analyse des Sentiments -cas twitter- "Opinion Detection with Machine Lerning "
 
Analyse des sentiments cas twitter - univ ghardaia algerie
Analyse des sentiments  cas twitter - univ ghardaia algerieAnalyse des sentiments  cas twitter - univ ghardaia algerie
Analyse des sentiments cas twitter - univ ghardaia algerie
 
Compte rendu : Le routage dynamique RIP V1
Compte rendu : Le routage dynamique RIP V1Compte rendu : Le routage dynamique RIP V1
Compte rendu : Le routage dynamique RIP V1
 
Diapo fin d'étude bdd université ghardaia licence informatique
Diapo fin d'étude bdd université ghardaia  licence informatiqueDiapo fin d'étude bdd université ghardaia  licence informatique
Diapo fin d'étude bdd université ghardaia licence informatique
 

Expérimentation et interprétation des algorithmes de tri élémentaires tp algo n°01

  • 1. République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université de Ghardaïa PAR : Soumia Elyakote HERMA ANNEE UNIVERSITAIRE: 2014/2015 Module : Conception et Analyse des Algorithmes TP N° 01: Enseignant : Slimane BELLAOUAR Expérimentation et interprétation des Algorithmes de tri élémentaires
  • 2. Plan • Introduction au Tri Sélection • Implémentation de l’algorithme de tri par sélection • Expérimentations sur des données déférentes • Exécution sur java • Représentation et interprétation des résultats • les résultats des comparaisons • Les graphes correspondants • Les Calculs • Les Résultats • Les graphes correspondent des échanges • Remarque sur les comparaisons & les échanges Tri de sélection • Coup d’œil sur le Tri par Insertion
  • 3. L’idée est de trier un tableau en déterminant son plus petit, son deuxième plus petit, troisième plus petit …etc. C’est à dire trouver la position du plus petit élément dans le tableau et ensuite échanger a[0] et a[i1]. Ensuite, déterminer la position i2 de l’élément avec le plus petit des a[1],………..a[N-1] et échanger a[1] et a[i2]. On continue de cette manière jusqu’à ce que tous les éléments soient dans la position correcte. Le tri par sélection:
  • 4. Implémentation de l’algorithme de tri par sélection : public class SelectionSortGenerics { private static void exch(Comparable[] a, int i, int j) { Comparable t = a[i]; a[i] = a[j]; a[j] = t; } private static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } public <Object extends Comparable<Object>>void selectionSort(Object[] a) { int compt_exch= 0; int N = a.length; int compt_if= 0; for (int i = 0; i <N - 1; i++) { // find index of smallest element int smallest = i; for (int j = i + 1; j < N; j++) { compt_if++; if (less(a[j], a[smallest])) smallest = j; } exch(a, i, smallest); // swap smallest to front compt_exch++; } System.out.println("comparisons operations : "+compt_if+" + exchanges operations : "+compt_exch); }
  • 5. Class main: public static void main(String[] args){ SelectionSortGenerics sorting = new SelectionSortGenerics(); int n1 = 750; Integer[] arr01 = new Integer[n1] ; Integer[] arr01 = new Integer[n1] ; for (Integer i=0; i<n1; i++) { arr01[i] = (i); } System.out.println(" *** expérimentation sur des données d''entrées triées ***"); System.out.println("before sorting tab01 : "+ Arrays.toString(arr01)); sorting.selectionSort (arr01); System.out.println("After sorting tab01 : "+Arrays.toString(arr01)); System.out.println(); Integer[] arr03 = new Integer[n1] ; for (Integer i=0; i<n1; i++) { arr03[i] = (n1-i); } System.out.println(" *** expérimentation sur des données d''entrées trié à l''envers ***"); System.out.println("before sorting tab03 : "+ Arrays.toString(arr03)); sorting.selectionSort(arr03); System.out.println("After sorting tab03 : "+Arrays.toString(arr03)); System.out.println(); Integer[] arr02 = new Integer[n1] ; for (Integer i=0; i<n1; i++) { arr02[i] =(int)(Math.random()*128); } System.out.println(" *** expérimentation sur des données d''entrées aléatoire ***"); System.out.println("before sorting tab02 : "+ Arrays.toString(arr02)); sorting.selectionSort(arr02); System.out.println("After sorting tab02 : "+Arrays.toString(arr02)); }
  • 6. Expérimentations sur des données déférentes : On a exécuté le code sur des tableaux des entiers avec des tailles déférentes : Algorithmes de tri par sélection : Exemple d’exécution : *** expérimentation sur des données d''entrées aléatoire *** before sorting tab1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] tab2 : [100, 99, .., , 3, 2, 1] tab3 : [1000, 999, .., 3, 2, 1] comparisons operations : 45 + exchanges operations : 9 comparisons operations : 4950 + exchanges operations : 99 comparisons operations : 499500 + exchanges operations : 999 After sorting tab1 : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] tab2[1, 2, 3, 4, 5.. 98, 99, 100] tab3[1, 2, 3, 4, 5...998,999,1000
  • 8. Représentation et interprétation des résultats : Il est facile de compter le nombre d'opérations nécessaires. A chaque itération, on démarre à l'élément ai et on le compare successivement à ai+1, ai+2, ..., aN. On fait donc N - i comparaisons. On commence avec i = 1 et on finit avec i = N-1. Donc on fait (N-1) + (N-2) + ··· + 2 + 1 = N(N-1)/2 comparaisons, et N-1 échanges. Le tri par sélection fait donc de l'ordre de N2 comparaisons. Donc , le tri par sélection est en O(N2). Ses nombres de comparaison par rapport aux nombres d'éléments du tableau.
  • 9. tableau représente les résultats des comparaisons : les comparaison C(n) Taille(n) trié aléatoire trié à l'envers Lg2( n ) Lg2 (C(n)) 100 4950 4950 4950 6,643856 12,27321 200 19900 19900 19900 7,643856 14,28048 300 44850 44850 44850 8,228819 15,45282 400 79800 79800 79800 8,643856 16,2841 500 124750 124750 124750 8,965784 16,92868 600 179700 179700 179700 9,228819 17,45523 700 244650 244650 244650 9,451211 17,90036 800 319600 319600 319600 9,643856 18,28591 900 404550 404550 404550 9,813781 18,62596 1000 499500 499500 499500 9,965784 18,93013
  • 10. Les graphes correspondants : 0 100000 200000 300000 400000 500000 600000 Nbr Comparaisons pàp au Taille (Sélection) trié aléat trié à l'envers 0 2 4 6 8 10 12 14 16 18 20 6.64385619 7.64385619 8.64385619 9.64385619 lg comparaison lg compara ison
  • 11. En Calculant : On remarque « log C(N) » est une droite, son formule est : log C(N)= b* log(N) + c. Trouvons b et c: b = log(Cn+i)− log(Cn) log(n+i)− log(n) ,  b = 2,001180586 c = log C(N) – b * log(N),  c= -1,014653114 C (N) = a Nb, où  a = 2c = 0,493116 Hypothèse: C (N) =0.493116* N2.001180586 Le nombre d’opérations de comparaisons estimé pour N=650 est: C(650) = 0.493116* (6502.001180586) = 1888489 (179700<1888489<244650) 600 650 700
  • 12. Résultat : -Avec le tri par sélection, le nombre de comparaisons de clés ne dépendent pas de la nature du tableau (presque trié, non trié et trié dans l’ordre inverse) • La complexité en nombre de comparaisons pour le tri par sélection est donc : MaxC(N)=MinC (N)=MoyC(N) =N(N-1)/2 = O(N^2)
  • 13. Représentation et interprétation des résultats Pour chaque N taille éléments d’entrées l’algo de tri fait N opérations d’échanges . tableau représente les résultats des échanges : les échanges E(n) Taille(n) trié aléatoire trié à l'envers 100 99 99 99 200 199 199 199 300 299 299 299 400 399 399 399 500 499 499 499 600 599 599 599 700 699 699 699 800 799 799 799 900 899 899 899 1000 999 999 999
  • 14. Les graphes correspondent (des échanges ) : 0 200 400 600 800 1000 1200 1 2 3 4 5 6 7 8 9 10 Nbr Echanges pàp Taille (Sélection) des entrées triées des entrées aléatoires des entrées triées a l'envers Evidement ; le graph « E(N) » est une droite, son formule est : E(N)= a(N) + b. Trouvons a et b:  b = 1  a = 0.99 Hypothèse: E (N) = (0.99)(N) + 1 Le nombre d’opérations d’échanges estimé pour N=650 est: E(650) = (0.99)(650) + 1 =643 (599< 643 <699) 600 650 700
  • 15. Résultat : Aussi pour les échanges, la complexité au pire des cas est égale à la complexité en moyenne. Puisqu’on fait au maximum un seul échange à chaque parcours de la boucle FOR interne de l’algorithme implémenté. Comme on a N éléments dans le tableau. On a donc : MaxE(N)= N-1
  • 16. Remarque sur les comparaisons & les échanges : Tri de sélection : tri de sélection Taille comparaison échange 100 4950 99 200 19900 199 300 44850 299 400 79800 399 500 124750 499 600 179700 599 0 20000 40000 60000 80000 100000 120000 140000 1 2 3 4 5 6 compara isons échanges En remarquant que le tri par sélection prendre une technique insensible : -une complexité de O(n2) pour les opérations de comparaison et O(n) pour les échanges ; ça ce présente malgré que les données d’entrées soit triées (ou partiellement triées).
  • 17. Coup d’oeil sur le tir par Insertion: L’idée est de trier successivement les premiers éléments du tableau. A la ième étape on insère le ième élément à son rang parmi les i-1 éléments précédents qui sont déjà triés entre eux. L’algorithme commence par s’exécuter à partir du 2ème élément du tableau.
  • 18. Coup d’oeil sur le tir par Insertion: 0 100000 200000 300000 400000 500000 600000 Nbr Comparaison prp au Taille (Insertion) trié aléat trié à l'envers 0 2 4 6 8 10 12 14 16 18 20 lg comparaison lg comparai son Le graphe correspondent au résultats des comparaison du tri d’Insertion :
  • 19. Résultat : • Pour insérer le i-ème élément, quel que soit l’état des entrées (triés, non triées) nous avons au moins 1 et au plus i-1 comparaisons à faire. • On a donc: la complexité est O(N^2)
  • 20. Le graphe correspondent au résultats des échanges du tri d’Insertion : 0 100000 200000 300000 400000 500000 600000 100 200 300 400 500 600 700 800 900 1000 Nbr Echanges prp au Taille (Insertion) Trié Aléatoire Trié à l'envers 0 2 4 6 8 10 12 14 16 18 20 lg Alétoire lg Trié à l'envers
  • 21. Résultat : • la méthode de tri par insertion fait uniquement des échanges. Tel que; • On compte i-1 échanges dans le meilleur des cas (le comportement avec le tableau déjà trié). D’où : MinE(N)=0 • Avec un tableau trié dans l’ordre inverse, ce qui, est le pire des cas : • Le nombre de mouvements maximal se calcule graphiquement (comme les calcules de tri sélection) • La complexité du nombre de mouvements maximal est : MoyM(N) = O(N^2)
  • 22. Remarque sur les comparaisons & les échanges : Tri d’Insertion : tri de sélection Taille comparaison échange 100 4950 2198 200 19900 9120 300 44850 21975 400 79800 39572 500 124750 65053 600 179700 91026 0 20000 40000 60000 80000 100000 120000 140000 160000 180000 1 2 3 4 5 6 compar aisons échang es - Le tri par Insertion suit une méthode (technique de tri) sensible : -une complexité de O(n2) pour les comparaisons et O(n2) comme échanges, (dans le pire des cas), et elle diminue (échanges) selon la taille des données . -si les données d’entrées sont trié (partiellement triée) le tri fait
  • 23. Conclusion L’algorithme du tri par sélection est simple, mais peu efficace à cause de sa complexité ( spécialement le coût d’opérations des comparaisons (selon le type de clé de comparaison)) bien qu’elle utile par à port au autre méthodes de tri si on traite des données de type et de taille plus important. Egalement, une propriété importante du tri par insertion : est son efficacité est meilleure si le tableau initial possède un certain ordre.