SlideShare une entreprise Scribd logo
1  sur  21
Université de Ghardaïa
Spécialité : Master I - SIEC
Système Intelligent pour Extraction des Connaissance
PAR :
Soumia Elyakote HERMA
ANNEE UNIVERSITAIRE: 2014/2015
Module : Conception et Analyse des
AlgorithmesTP N° 02:
Enseignant :
Slimane BELLAOUAR
Plan
 Introduction au Tri Shell
 Principe de l’expérimentation
 Implémentation de l’algorithme de tri par Shell
◦ Implémentation de tri de Shell (2^k)
◦ Implémentation de tri de Hibbard (2^k-1)
◦ Implémentation de tri de Knuth l (3*k+1)
◦ Implémentation de tri de Sedgewick
 Expérimentations sur des données déférentes
 Exécution sur java
 Représentation et interprétation des résultats
 Les graphes correspondants
 Les Résultats
 Représentation des résultats des (4) séquences sur des
tableaux avec des entrées tirés, aléatoires puis des entrées trié
à l’envers
 Conclusion
Le TP expérimente des séquences du tri de
Shell utilisé depuis la séquence introduit par Shell
1959 arrivant au l’implémentation supposé par
Sedgewick 1956,
Pour remarqué l’impact de chaque séquence en
choisissant les quatre (4) séquences :
01) Shell : 1, 2, 4, 8, 16, 32,…..
02) Hibbard : 1, 3, 7, 15, 32,…..
03) Knuth : 1, 4, 13, 40, 121,…..
04) Sedgewick : 1, 5, 19, 41, 109, 209, 505,
929,….
Objectif:
Le tri de Shell:
Le tri de Shell utilise un séquence d’entiers,
appelée séquence-h, il effectue chaque entier de cette
séquence un tri par insertion sur les éléments d’indice i,
i+h, i+2h,,,, ’cas séquence Shell original’
partant d’une valeur de h très grande pour arriver à 1,
( qui est le tri par insertion classique)
Principe de l’expérimentation:
 On prend le nombre des comparaisons comme opération
principale dans les implémentations.
 On a posé le compteur du nombre des comparaisons dans la
fonction less() pour bien mesuré l’exécution de l’opération
principale.
 On exécute le code (les implémentations) sur des tailles
différentes.
 On exécute le code sur des tableaux avec des données
triées puis des données aléatoires ensuite des données triées
à l’envers.
 On utilise un class pour chaque implémentation du séquence.
 On utilise les class less() , exch() et is sorted() depuis livre de
Algorithmes Pr Robert Sedgewick.
Implémentation de tri de Shell séquence original (2^k)
en Java :
/** Shell sort using Shell's (original) gap sequence: n/2, n/4, ..., 1. */
public void shell_2k_Sort(Comparable[] array)
{
compteur_if.compt_if = 0;
int n = array.length;
// ***** sequence 2^k
for (int gap = (int) (Math.pow(2,(Math.log(n)/Math.log(2)))); gap > 0; gap =
gap / 2){
for (int i = gap; i < n; i++){
for (int j = i; j > 0 && less(array[j], array[j - 1]); j--)
exch(array, j, j - 1);
}
}
System.out.println(" *shell_2k_1* comparisons operations : "
+ compteur_if.compt_if);
}
Résultats:
seq 2^k
Trié aléatoire invers
1000 8010 253224 507509
4000 40012 4071707 8038011
6000 66013 8956931 18063011
8000 88013 16079357 32084012
Les graphes correspondent :
0
5000000
10000000
15000000
20000000
25000000
30000000
35000000
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
NbrComparaision
Taille des données
Résultat séquence de Shell (2^k) avec les 3 tableaux
seq 2^k Trié
seq 2^k
aléatoire
seq 2^k
invers
Analyse :
le graphe extraite de
l’algorithme du tri Shell , le
graphe est quadratique alors
La complexités : O(N^2)
L’implémentation et les résultats du séquence de
Hibbard, 1963 est presque comme la séquence de Shell donc
nous avons évité de refaire des informations, Tel que la
différence est dans le segment de code de la séquence (2^k-1)
est ;
for (int gap = (int) (Math.pow (2,(Math.log (n )/Math.log (2))))-1;
gap > 0; gap = gap / 2).
Implémentation de tri de séquence de Hibbard, 1963 (2^k-1) en Java :
Implémentation de tri de Knuth, 1973 (3*k+1) :
public void shellSort(Comparable[] a) {
compteur_if.compt_if = 0;
int N = a.length;
int h = 1;
while (h < N / 3)
h = 3 * h + 1; // 1, 4, 13, 40, 121, 364, 1093, ...
while (h >= 1) // h-sort the array {
for (int i = h; i < N; i++) // Insert a[i] among a[i-h], ..
{
for (int j = i; j >= h && less(a[j], a[j - h]); j -= h)
exch(a, j, j - h);
}
h = h / 3;
}
System.out.println("comparisons operations : " + compteur_if.compt_if);// +" +
exchanges operations : "+compt_exch);
}
Résultats
Les graphes correspondent :
seq Knuth
Trié aléatoire invers
1000
5457 12206 8550
4000
27084 62276 44221
6000
43084 97839 63434
8000
59084 139581 93463
0
20000
40000
60000
80000
100000
120000
140000
160000
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
NbrComparaision
Taille des données
Résultat sequence de Knuth(3*h+1) avec les 3 tableaux
seq Knuth
Trié
seq Knuth
aléatoire
seq Knuth
invers
Analyse :
le graphe extraire de
l’algorithme du tri par
Knuth, le graphe donne
une complexités
amélioré : O(N3/2)
Implémentation de tri de Sedgewick 1986 :
public void sedgewick_sort(Comparable[] a) { // Sort a[] into increasing order.
compteur_if.compt_if = 0;
int h = 0;
int N = a.length;
int seq[] = { 1073643521, 268386305, 150958081, 67084289, 37730305,16764929, 9427969,
4188161,2354689, 1045505, 587521, 260609,146305, 64769, 36289, 16001, 8929, 3905, 2161, 929,
505, 209,109, 41, 19, 5, 1 };
int val = 0;
while (seq[val] > N) val++;
h = seq[val];
while (h > 0) {
for (int i = h; i < N; i++) {
for (int j = i; j >= h && less(a[j], a[j - h]); j -= h) {
exch(a, j, j - h);
}
}
val++;
if (seq[val - 1] != 1) h = seq[val];
else h = 0;
}
Résultats
Les graphes correspondent :
seq Sedgewick
Trié aléatoire invers
1000 6182 11403 9046
4000 32116 53876 46599
6000 52116 84773 74305
8000
72116 114894 101339
0
20000
40000
60000
80000
100000
120000
140000
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
NbrComparaision
Taille des données
Résultat séquence de Sedgewick avec les 3 tableaux
seq
Sedgewick
Trié
seq
Sedgewick
aléatoire
seq
Sedgewick
invers
Analyse :
le graphe extraire de
l’algorithme du tri par
Sedgewick , le graphe
donne une complexités
optimal : O(N4/3).
Image d’exécution sur java:
tableau représente les résultats de les (4) séquence sur
des tableaux triés en plusieurs tailles :
Trié
2^k 2^k-1 knuth sedgewick
1000 7986 7987 5457 6182
2000 17963 17964 12364 14182
3000 28916 28917 19364 23021
4000 39916 39917 27084 32116
5000 51821 51822 35084 42116
6000 63821 63822 43084 52116
7000 75821 75822 51084 62116
8000 87821 87822 59084 72116
Les graphes correspondents :
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
0 2000 4000 6000 8000 10000
Nbrcomparaison
Tailles des deonnées
Resultats des (4) sequences sur des
tableaux Trié
Trié 2^k
Trié
2^k-1
Trié
knuth
Trié
sedgewi
ck
On remarque que ;
1. Le cout de séquence de Shell et
Hibbard est presque le même.
2. Et selon ce que nous trouvons
dans le cas des données triées la
séquence de Knuth superforme
la séquence de Sedgewick.
3. On peut dire que les (4)
séquences donne une résultat
acceptable en concernant
l’amélioration entre eux .
tableau représente les résultats de les (4)
séquence sur des tableaux triés à l’envers en
plusieurs tailles :
Trié à l'envers
2^k 2^k-1 knuth sedgewick
1000
10175 10511 8550 9046
2000
22914 22947 18116 20437
3000
37501 38050 30380 33598
4000
51785 51403 44221 46599
5000
66016 65541 51491 58224
6000
81249 81303 63434 74305
7000
93690 94488 77616 89429
8000 87821 87822 59084 72116
Les graphes correspondent :
0
20000
40000
60000
80000
100000
120000
140000
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Nbrcomparaison
Tailles des deonnées
Resultats des (4) sequences sur des tableaux
Trié à l'envers
Trié à
l'envers 2^k
Trié à
l'envers
2^k-1
Trié à
l'envers
knuth
Trié à
l'envers
sedgewick
On remarque que ;
1. 1. Le cout de séquence de
Shell et Hibbard reste
presque le même.
2. Et selon ce que nous
trouvons dans le cas des
données triées à l’envers la
séquence de Knuth reste
aussi superforme la
séquence de Sedgewick.
3. les (4) séquences donne une
résultat attendue en
concernant l’amélioration
entre eux .
tableau représente les résultats de les (4)
séquence sur des tableaux aléatoires en
plusieurs tailles :
Aléatoire
2^k 2^k-1 knuth sedgewick
1000
12861 13239 12620 11711
2000
29535 29038 27270 26008
3000
46555 47297 44199 39303
4000
64211 68863 61680 53848
5000
84535 85597 79512 58224
6000
103291 103974 101371 84369
7000
120241 125980 118503 99830
8000
140799 143409 136786 101339
Les graphes correspondents :
0
20000
40000
60000
80000
100000
120000
140000
160000
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Nbrcomparaison
Tailles des deonnées
Resultats des (4) sequences sur des tableaux
Aléatoire
Aléatoire
2^k
Aléatoire
2^k-1
Aléatoire
knuth
Aléatoire
sedgewick
On remarque que ;
1. Le cout de séquence de
Hibbard surmonte la
séquence de Shell ce qui
montre l’amélioration de
séquence de Hibbard p à p
Shell.
2. selon ce qu’on trouve dans
le cas des données aléatoire
la séquence de Sedgewick
montre sa superforme par-
à-port la séquence de
Knuth (résultat optimal).
3. On peut dire que les (4)
séquences donne une
résultat agréable concernant
l’amélioration entre eux .
Conclusion
 Enfin de ce pratique, les séquences étudié donne
des résultats convenables et prévus.
 A partir de ces résultats nous constatons que le tri
par Shell passe par des améliorations (séquences)
pour qu’il devenue de ce meilleur complexité
(jusqu’à ce jour).
 Finalement l’amélioration de tri par Shell reste
un problème ouvert qui peut être un jour on trouve
une amélioration Optimale.
Merci  

Contenu connexe

Tendances

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
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap IIInes Ouaz
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitésalah fenni
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnesTRIKI BILEL
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Sana Aroussi
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetiquemohamed_SAYARI
 

Tendances (20)

Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
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).
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Animations tris
Animations trisAnimations tris
Animations tris
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Asd1
Asd1Asd1
Asd1
 
Talend
TalendTalend
Talend
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetique
 
Stack using Array
Stack using ArrayStack using Array
Stack using Array
 

En vedette

Ms4 level (pollution ) food waste ( text = file 1)
Ms4 level (pollution ) food waste  ( text = file 1)Ms4 level (pollution ) food waste  ( text = file 1)
Ms4 level (pollution ) food waste ( text = file 1)Mr Bounab Samir
 
Séquence mutualisation nuevas tecnologias laurence 2nde lvii
Séquence mutualisation nuevas tecnologias laurence 2nde lviiSéquence mutualisation nuevas tecnologias laurence 2nde lvii
Séquence mutualisation nuevas tecnologias laurence 2nde lviiLaurencemarlioz
 
Ms4 level letter of complaint
Ms4 level  letter of complaintMs4 level  letter of complaint
Ms4 level letter of complaintMr Bounab Samir
 
How to teach the 2 generation curriculum
How to teach the 2 generation curriculumHow to teach the 2 generation curriculum
How to teach the 2 generation curriculumMr Bounab Samir
 
Ms1 test 1 second term 2016 2017
Ms1 test 1  second term 2016 2017Ms1 test 1  second term 2016 2017
Ms1 test 1 second term 2016 2017Mr Bounab Samir
 
2nd generation curriculum ms1 planning 2012017
2nd generation curriculum   ms1 planning 20120172nd generation curriculum   ms1 planning 2012017
2nd generation curriculum ms1 planning 2012017Mr Bounab Samir
 
Ms1 sequence 3 me &amp; my daily activities
Ms1  sequence 3    me &amp; my daily activitiesMs1  sequence 3    me &amp; my daily activities
Ms1 sequence 3 me &amp; my daily activitiesMr Bounab Samir
 
Musicaaltovolumen
MusicaaltovolumenMusicaaltovolumen
Musicaaltovolumenguest8408a1
 
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...ACSG - Section Montréal
 
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...ACSG - Section Montréal
 
Les orchidees de_la_vie-mar2
Les orchidees de_la_vie-mar2Les orchidees de_la_vie-mar2
Les orchidees de_la_vie-mar2Cathy Castiaux
 
8 Claves de Liderazgo del Monje que Vendió su Ferrari
8 Claves de Liderazgo del Monje que Vendió su Ferrari8 Claves de Liderazgo del Monje que Vendió su Ferrari
8 Claves de Liderazgo del Monje que Vendió su Ferrariyalitzauribe
 
Branchenreport "Health Care" Marketingzugang dieleute2011
Branchenreport "Health Care" Marketingzugang dieleute2011Branchenreport "Health Care" Marketingzugang dieleute2011
Branchenreport "Health Care" Marketingzugang dieleute2011dieleutefürkommunikation AG
 
Vers un portail des Thèses
Vers un portail des ThèsesVers un portail des Thèses
Vers un portail des ThèsesY. Nicolas
 
Carte interactive d'accès aux plans d'eau du Québec
Carte interactive d'accès aux plans d'eau du QuébecCarte interactive d'accès aux plans d'eau du Québec
Carte interactive d'accès aux plans d'eau du QuébecACSG - Section Montréal
 

En vedette (20)

Ms4 level (pollution ) food waste ( text = file 1)
Ms4 level (pollution ) food waste  ( text = file 1)Ms4 level (pollution ) food waste  ( text = file 1)
Ms4 level (pollution ) food waste ( text = file 1)
 
Exam 4MS
Exam 4MSExam 4MS
Exam 4MS
 
Séquence mutualisation nuevas tecnologias laurence 2nde lvii
Séquence mutualisation nuevas tecnologias laurence 2nde lviiSéquence mutualisation nuevas tecnologias laurence 2nde lvii
Séquence mutualisation nuevas tecnologias laurence 2nde lvii
 
Ms4 level letter of complaint
Ms4 level  letter of complaintMs4 level  letter of complaint
Ms4 level letter of complaint
 
How to teach the 2 generation curriculum
How to teach the 2 generation curriculumHow to teach the 2 generation curriculum
How to teach the 2 generation curriculum
 
Ms1 test 1 second term 2016 2017
Ms1 test 1  second term 2016 2017Ms1 test 1  second term 2016 2017
Ms1 test 1 second term 2016 2017
 
2nd generation curriculum ms1 planning 2012017
2nd generation curriculum   ms1 planning 20120172nd generation curriculum   ms1 planning 2012017
2nd generation curriculum ms1 planning 2012017
 
Ms1 sequence 3 me &amp; my daily activities
Ms1  sequence 3    me &amp; my daily activitiesMs1  sequence 3    me &amp; my daily activities
Ms1 sequence 3 me &amp; my daily activities
 
Beneficios web 2.0
Beneficios web 2.0Beneficios web 2.0
Beneficios web 2.0
 
Kaifa
KaifaKaifa
Kaifa
 
Musicaaltovolumen
MusicaaltovolumenMusicaaltovolumen
Musicaaltovolumen
 
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...
Gestion des équipements municipaux et de leurs maintenances à la Ville de Sha...
 
5. servicio civil ciudadano
5.  servicio civil ciudadano5.  servicio civil ciudadano
5. servicio civil ciudadano
 
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...
Télédétection aéroportée pour la cartographie d’un modèle hybride de lessivag...
 
Évaluer l'information sur Internet et prescrire des ressources aux patients- ...
Évaluer l'information sur Internet et prescrire des ressources aux patients- ...Évaluer l'information sur Internet et prescrire des ressources aux patients- ...
Évaluer l'information sur Internet et prescrire des ressources aux patients- ...
 
Les orchidees de_la_vie-mar2
Les orchidees de_la_vie-mar2Les orchidees de_la_vie-mar2
Les orchidees de_la_vie-mar2
 
8 Claves de Liderazgo del Monje que Vendió su Ferrari
8 Claves de Liderazgo del Monje que Vendió su Ferrari8 Claves de Liderazgo del Monje que Vendió su Ferrari
8 Claves de Liderazgo del Monje que Vendió su Ferrari
 
Branchenreport "Health Care" Marketingzugang dieleute2011
Branchenreport "Health Care" Marketingzugang dieleute2011Branchenreport "Health Care" Marketingzugang dieleute2011
Branchenreport "Health Care" Marketingzugang dieleute2011
 
Vers un portail des Thèses
Vers un portail des ThèsesVers un portail des Thèses
Vers un portail des Thèses
 
Carte interactive d'accès aux plans d'eau du Québec
Carte interactive d'accès aux plans d'eau du QuébecCarte interactive d'accès aux plans d'eau du Québec
Carte interactive d'accès aux plans d'eau du Québec
 

Similaire à L'impact des incriments des séquences de tri Shell. Expérimentation des séquences

L’analyse et Expérimentation des séquences du Tri par shell
L’analyse et Expérimentation des séquences du Tri par shellL’analyse et Expérimentation des séquences du Tri par shell
L’analyse et Expérimentation des séquences du Tri par shellyoucefsama
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------NasriMohsen2
 
Lecture 3: Visualization and Programming
Lecture 3: Visualization and ProgrammingLecture 3: Visualization and Programming
Lecture 3: Visualization and ProgrammingSmee Kaem Chann
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
57277345 cours-matlab
57277345 cours-matlab57277345 cours-matlab
57277345 cours-matlabgeniem1
 
exercices.pptx---------------------------
exercices.pptx---------------------------exercices.pptx---------------------------
exercices.pptx---------------------------NasriMohsen2
 
Introduction a Matlab Introduction a Matlab
Introduction a Matlab Introduction a MatlabIntroduction a Matlab Introduction a Matlab
Introduction a Matlab Introduction a MatlabMarouaneMyyara2
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 

Similaire à L'impact des incriments des séquences de tri Shell. Expérimentation des séquences (20)

L’analyse et Expérimentation des séquences du Tri par shell
L’analyse et Expérimentation des séquences du Tri par shellL’analyse et Expérimentation des séquences du Tri par shell
L’analyse et Expérimentation des séquences du Tri par shell
 
Dijkstra kshortest
Dijkstra kshortestDijkstra kshortest
Dijkstra kshortest
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Video
VideoVideo
Video
 
Approximation de ritter
Approximation de ritterApproximation de ritter
Approximation de ritter
 
Matlab by Prof.Keang Sè Pouv
Matlab by Prof.Keang Sè PouvMatlab by Prof.Keang Sè Pouv
Matlab by Prof.Keang Sè Pouv
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
bhaj_inspiration.pdf
bhaj_inspiration.pdfbhaj_inspiration.pdf
bhaj_inspiration.pdf
 
TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------
 
courstic2.pptx
courstic2.pptxcourstic2.pptx
courstic2.pptx
 
Lecture 3: Visualization and Programming
Lecture 3: Visualization and ProgrammingLecture 3: Visualization and Programming
Lecture 3: Visualization and Programming
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
57277345 cours-matlab
57277345 cours-matlab57277345 cours-matlab
57277345 cours-matlab
 
exercices.pptx---------------------------
exercices.pptx---------------------------exercices.pptx---------------------------
exercices.pptx---------------------------
 
Introduction a Matlab Introduction a Matlab
Introduction a Matlab Introduction a MatlabIntroduction a Matlab Introduction a Matlab
Introduction a Matlab Introduction a Matlab
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 

Plus 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
 
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
 
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
 

Plus de Soumia Elyakote HERMA (7)

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
 
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...
 
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
 

L'impact des incriments des séquences de tri Shell. Expérimentation des séquences

  • 1. Université de Ghardaïa Spécialité : Master I - SIEC Système Intelligent pour Extraction des Connaissance PAR : Soumia Elyakote HERMA ANNEE UNIVERSITAIRE: 2014/2015 Module : Conception et Analyse des AlgorithmesTP N° 02: Enseignant : Slimane BELLAOUAR
  • 2. Plan  Introduction au Tri Shell  Principe de l’expérimentation  Implémentation de l’algorithme de tri par Shell ◦ Implémentation de tri de Shell (2^k) ◦ Implémentation de tri de Hibbard (2^k-1) ◦ Implémentation de tri de Knuth l (3*k+1) ◦ Implémentation de tri de Sedgewick  Expérimentations sur des données déférentes  Exécution sur java  Représentation et interprétation des résultats  Les graphes correspondants  Les Résultats  Représentation des résultats des (4) séquences sur des tableaux avec des entrées tirés, aléatoires puis des entrées trié à l’envers  Conclusion
  • 3. Le TP expérimente des séquences du tri de Shell utilisé depuis la séquence introduit par Shell 1959 arrivant au l’implémentation supposé par Sedgewick 1956, Pour remarqué l’impact de chaque séquence en choisissant les quatre (4) séquences : 01) Shell : 1, 2, 4, 8, 16, 32,….. 02) Hibbard : 1, 3, 7, 15, 32,….. 03) Knuth : 1, 4, 13, 40, 121,….. 04) Sedgewick : 1, 5, 19, 41, 109, 209, 505, 929,…. Objectif:
  • 4. Le tri de Shell: Le tri de Shell utilise un séquence d’entiers, appelée séquence-h, il effectue chaque entier de cette séquence un tri par insertion sur les éléments d’indice i, i+h, i+2h,,,, ’cas séquence Shell original’ partant d’une valeur de h très grande pour arriver à 1, ( qui est le tri par insertion classique)
  • 5. Principe de l’expérimentation:  On prend le nombre des comparaisons comme opération principale dans les implémentations.  On a posé le compteur du nombre des comparaisons dans la fonction less() pour bien mesuré l’exécution de l’opération principale.  On exécute le code (les implémentations) sur des tailles différentes.  On exécute le code sur des tableaux avec des données triées puis des données aléatoires ensuite des données triées à l’envers.  On utilise un class pour chaque implémentation du séquence.  On utilise les class less() , exch() et is sorted() depuis livre de Algorithmes Pr Robert Sedgewick.
  • 6. Implémentation de tri de Shell séquence original (2^k) en Java : /** Shell sort using Shell's (original) gap sequence: n/2, n/4, ..., 1. */ public void shell_2k_Sort(Comparable[] array) { compteur_if.compt_if = 0; int n = array.length; // ***** sequence 2^k for (int gap = (int) (Math.pow(2,(Math.log(n)/Math.log(2)))); gap > 0; gap = gap / 2){ for (int i = gap; i < n; i++){ for (int j = i; j > 0 && less(array[j], array[j - 1]); j--) exch(array, j, j - 1); } } System.out.println(" *shell_2k_1* comparisons operations : " + compteur_if.compt_if); }
  • 7. Résultats: seq 2^k Trié aléatoire invers 1000 8010 253224 507509 4000 40012 4071707 8038011 6000 66013 8956931 18063011 8000 88013 16079357 32084012 Les graphes correspondent : 0 5000000 10000000 15000000 20000000 25000000 30000000 35000000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 NbrComparaision Taille des données Résultat séquence de Shell (2^k) avec les 3 tableaux seq 2^k Trié seq 2^k aléatoire seq 2^k invers Analyse : le graphe extraite de l’algorithme du tri Shell , le graphe est quadratique alors La complexités : O(N^2)
  • 8. L’implémentation et les résultats du séquence de Hibbard, 1963 est presque comme la séquence de Shell donc nous avons évité de refaire des informations, Tel que la différence est dans le segment de code de la séquence (2^k-1) est ; for (int gap = (int) (Math.pow (2,(Math.log (n )/Math.log (2))))-1; gap > 0; gap = gap / 2). Implémentation de tri de séquence de Hibbard, 1963 (2^k-1) en Java :
  • 9. Implémentation de tri de Knuth, 1973 (3*k+1) : public void shellSort(Comparable[] a) { compteur_if.compt_if = 0; int N = a.length; int h = 1; while (h < N / 3) h = 3 * h + 1; // 1, 4, 13, 40, 121, 364, 1093, ... while (h >= 1) // h-sort the array { for (int i = h; i < N; i++) // Insert a[i] among a[i-h], .. { for (int j = i; j >= h && less(a[j], a[j - h]); j -= h) exch(a, j, j - h); } h = h / 3; } System.out.println("comparisons operations : " + compteur_if.compt_if);// +" + exchanges operations : "+compt_exch); }
  • 10. Résultats Les graphes correspondent : seq Knuth Trié aléatoire invers 1000 5457 12206 8550 4000 27084 62276 44221 6000 43084 97839 63434 8000 59084 139581 93463 0 20000 40000 60000 80000 100000 120000 140000 160000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 NbrComparaision Taille des données Résultat sequence de Knuth(3*h+1) avec les 3 tableaux seq Knuth Trié seq Knuth aléatoire seq Knuth invers Analyse : le graphe extraire de l’algorithme du tri par Knuth, le graphe donne une complexités amélioré : O(N3/2)
  • 11. Implémentation de tri de Sedgewick 1986 : public void sedgewick_sort(Comparable[] a) { // Sort a[] into increasing order. compteur_if.compt_if = 0; int h = 0; int N = a.length; int seq[] = { 1073643521, 268386305, 150958081, 67084289, 37730305,16764929, 9427969, 4188161,2354689, 1045505, 587521, 260609,146305, 64769, 36289, 16001, 8929, 3905, 2161, 929, 505, 209,109, 41, 19, 5, 1 }; int val = 0; while (seq[val] > N) val++; h = seq[val]; while (h > 0) { for (int i = h; i < N; i++) { for (int j = i; j >= h && less(a[j], a[j - h]); j -= h) { exch(a, j, j - h); } } val++; if (seq[val - 1] != 1) h = seq[val]; else h = 0; }
  • 12. Résultats Les graphes correspondent : seq Sedgewick Trié aléatoire invers 1000 6182 11403 9046 4000 32116 53876 46599 6000 52116 84773 74305 8000 72116 114894 101339 0 20000 40000 60000 80000 100000 120000 140000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 NbrComparaision Taille des données Résultat séquence de Sedgewick avec les 3 tableaux seq Sedgewick Trié seq Sedgewick aléatoire seq Sedgewick invers Analyse : le graphe extraire de l’algorithme du tri par Sedgewick , le graphe donne une complexités optimal : O(N4/3).
  • 14. tableau représente les résultats de les (4) séquence sur des tableaux triés en plusieurs tailles : Trié 2^k 2^k-1 knuth sedgewick 1000 7986 7987 5457 6182 2000 17963 17964 12364 14182 3000 28916 28917 19364 23021 4000 39916 39917 27084 32116 5000 51821 51822 35084 42116 6000 63821 63822 43084 52116 7000 75821 75822 51084 62116 8000 87821 87822 59084 72116
  • 15. Les graphes correspondents : 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 0 2000 4000 6000 8000 10000 Nbrcomparaison Tailles des deonnées Resultats des (4) sequences sur des tableaux Trié Trié 2^k Trié 2^k-1 Trié knuth Trié sedgewi ck On remarque que ; 1. Le cout de séquence de Shell et Hibbard est presque le même. 2. Et selon ce que nous trouvons dans le cas des données triées la séquence de Knuth superforme la séquence de Sedgewick. 3. On peut dire que les (4) séquences donne une résultat acceptable en concernant l’amélioration entre eux .
  • 16. tableau représente les résultats de les (4) séquence sur des tableaux triés à l’envers en plusieurs tailles : Trié à l'envers 2^k 2^k-1 knuth sedgewick 1000 10175 10511 8550 9046 2000 22914 22947 18116 20437 3000 37501 38050 30380 33598 4000 51785 51403 44221 46599 5000 66016 65541 51491 58224 6000 81249 81303 63434 74305 7000 93690 94488 77616 89429 8000 87821 87822 59084 72116
  • 17. Les graphes correspondent : 0 20000 40000 60000 80000 100000 120000 140000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 Nbrcomparaison Tailles des deonnées Resultats des (4) sequences sur des tableaux Trié à l'envers Trié à l'envers 2^k Trié à l'envers 2^k-1 Trié à l'envers knuth Trié à l'envers sedgewick On remarque que ; 1. 1. Le cout de séquence de Shell et Hibbard reste presque le même. 2. Et selon ce que nous trouvons dans le cas des données triées à l’envers la séquence de Knuth reste aussi superforme la séquence de Sedgewick. 3. les (4) séquences donne une résultat attendue en concernant l’amélioration entre eux .
  • 18. tableau représente les résultats de les (4) séquence sur des tableaux aléatoires en plusieurs tailles : Aléatoire 2^k 2^k-1 knuth sedgewick 1000 12861 13239 12620 11711 2000 29535 29038 27270 26008 3000 46555 47297 44199 39303 4000 64211 68863 61680 53848 5000 84535 85597 79512 58224 6000 103291 103974 101371 84369 7000 120241 125980 118503 99830 8000 140799 143409 136786 101339
  • 19. Les graphes correspondents : 0 20000 40000 60000 80000 100000 120000 140000 160000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 Nbrcomparaison Tailles des deonnées Resultats des (4) sequences sur des tableaux Aléatoire Aléatoire 2^k Aléatoire 2^k-1 Aléatoire knuth Aléatoire sedgewick On remarque que ; 1. Le cout de séquence de Hibbard surmonte la séquence de Shell ce qui montre l’amélioration de séquence de Hibbard p à p Shell. 2. selon ce qu’on trouve dans le cas des données aléatoire la séquence de Sedgewick montre sa superforme par- à-port la séquence de Knuth (résultat optimal). 3. On peut dire que les (4) séquences donne une résultat agréable concernant l’amélioration entre eux .
  • 20. Conclusion  Enfin de ce pratique, les séquences étudié donne des résultats convenables et prévus.  A partir de ces résultats nous constatons que le tri par Shell passe par des améliorations (séquences) pour qu’il devenue de ce meilleur complexité (jusqu’à ce jour).  Finalement l’amélioration de tri par Shell reste un problème ouvert qui peut être un jour on trouve une amélioration Optimale.