Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
L’analyse et Expérimentation de algorithme du Tri par sélection
1. REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université de Ghardaïa
1
Faculté des Sciences et de Technologie
Département des Mathématiques et Informatique
Spécialité : Systèmes Intelligents pour l'Extraction de Connaissances (SIEC)
Module : Conception et Analyse des Algorithmes
TP Nº 01
Expérimentation et interprétation de
algorithme du Tri par sélection
Par : youcef chettiba Enseignant : Slimane BELLAOUAR
Année Universitaire 2017/2018
3. Introduction
Le tri par sélection consiste simplement a sélectionner Le plus petit
élément à partir du partie non triée et échangé avec l'élément le plus à
gauche et que cet élément fait partie du tableau trié. Et répéter
itérativement le processus tant qu’il reste des éléments dans la
tableau non trié .
Dans ce rapport on vas faire l’analyse de l’implémentation
d’algorithme de tri par sélection avec le calcule de temps d’exécution
pour des tableaux de différent tailles, les tableaux contenant des
données aléatoire et triée et triée à l’envers .
3
4. Principe et fonctionnement de tri par sélection
pour savoir le principe et comment fonctionné de tri
par sélection en a utilisé une exemple :
4
12 29 25 7 33 17 40 42
7 12 25 29 33 17 40 42
7 12 25 29 33 17 40 42
7 12 17 29 33 25 40 42
comparer
élémént
List triée
Sélect élément
7 29 25 12 33 17 40 42
7 12 25 29 33 17 40 42
12 29 25 7 33 17 40 42
7 29 25 12 33 17 40 42
7 29 25 12 33 17 40 42
List no Triée
5. Principe et fonctionnement de tri par sélection
5
7 12 17 25 33 29 40 42
7 12 17 25 29 33 40 42
7 12 17 25 29 33 40 42
7 12 17 29 33 25 40 42
7 12 17 25 33 29 40 42
7 12 17 25 33 29 40 42
comparer
élémént
List triée
Sélect élément
List no Triée
6. implémentation d'algorithme de tri par sélection
• Classe et objet
– Créer une class seléctionsort()
Implémentation méthode sort(Comparable[] a)
Implémentation fonction less(Comparable v, Comparable w)
Implémentation méthode exch(Comparable [] a, int i, int)
Implémentation méthode show(Comparable [] a)
– Créer une class StopWatch() qui calculer tempe d'exécution
d'un algorithm
– Créer un objet StopWatch()
démarrer chronomètre avant program de tri
stop chronomètre après program de tri
Obtenu le tempe d'exécution
– Créer classe RandomTab() qui rempli tableau aléatoire
6
7. implémentation d'algorithme de tri par sélection
package selectionsort;
/**
* @author youcef chettiba
*/
public class Selectionsort {
public static void sort(Comparable[] a) {
int N = a.length;
for (int i = 0; i < N; i++) {
int min = i;
for (int j = i+1; j < N; j++) {
if (less(a[j], a[min]))
min = j; }
exch(a, i, min);
} }
8. implémentation d'algorithme de tri par sélection
private static boolean less(Comparable v, Comparable w) {
return v.compareTo(w) < 0;
}
private static void exch(Comparable[] a, int i, int j) {
Comparable swap = a[i];
a[i] = a[j];
a[j] = swap;
}
private static void show(Comparable[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
System.out.print(" ");
}
}
9. implémentation d'algorithme de tri par sélection
package selectionsort;
public class StopWatch {
private final long start;
public StopWatch ()
{
start = System.currentTimeMillis();
}
public double elapsedTime()
{
long now = System.currentTimeMillis();
return (now - start) / 1000.0;
}
}
10. implémentation d'algorithme de tri par sélection
package selectionsort;
import java.util.Random;
public class RandomTab {
private static Random generator = new Random();
public static Integer[] randomInt (int length, int n)
{
Integer[] a = new Integer[length];
for (int i = 0; i < a.length; i++)
a[i] = generator.nextInt(n);
return a;
}
}
11. implémentation d'algorithme de tri par sélection
public static void main(String[] args) {
Integer[] a ;
a = new Integer [5000];
a = RandomTab.randomInt(a.length, 1000);
// Rndom
StopWatch time = new StopWatch ();
sort(a);
System.out.println(a.length);
System.out.println("random = "+time.elapsedTime());
12. implémentation d'algorithme de tri par sélection
// Triée
StopWatch time1 = new StopWatch ();
sort(a);
System.out.println("trié ="+time1.elapsedTime());
// invers
int r=0,b=a.length;
for (int j = 0; j <b/2 ; j++) {
r=a[j];
a[j]=a[b-1-j];
a[b-1-j]=r; }
StopWatch time2 = new StopWatch ();
sort(a);
System.out.println("inversé = "+time2.elapsedTime());}
}
19. L'analyse et l'interprétation des résultats
On remarque que quel que soit le type de tableau ( trié, et triée à l’envers ou bien
random ( aléatoire)) fait en temps d’exécution quadratique .
Des facteurs peuvent changer temps le d’exécution :
• la Machine
•Le Compilateur
•L’algorithme
•Les Données d’entrée
•Le processeur et sa fille d’attente
19
21. Conclusion
L’algorithme du tri par sélection est simple, mais
considéré comme inefficace, car ils 'exécute en
temps quadratique en le nombre d'éléments à trier,
et non en temps pseudo linéaire.
21