Département d’Informatique
Master Big Data Analytics & Smart Systems
Realisé par : Encadré par :
Salma Largo Pr.Meknassi
Khalid El masry
Année universitaire 2016/2017
LARGO & ELMASRY Page 2
Table des matières :
Table des matières ........................................................................................................................................................... 1
Introduction ...................................................................................................................................................................... 2
Sélection Séquentielle ..................................................................................................................................................... 2
Principe de la méthode .......................................................................................................................................... 2
Pseudo code ............................................................................................................................................................. 3
Jeu d’essai ................................................................................................................................................................ 5
Sélection Parallèle………………………………………………………………………………………………………………………………………………6
Principe de la méthode .......................................................................................................................................... 6
Pseudo code ............................................................................................................................................................. 7
Environnement de travail………………………………………………………………………………………………………………………………..…8
Références…………………………………………………………………………………………………………………………………………………………8
Annexe………………………………………………………………………………………………………………………………………………………………8
LARGO & ELMASRY Page 3
Introduction :
En algorithmique, un algorithme de sélection est une méthode ayant pour but de trouver le k-ième
plus petit élément d'un ensemble d'objets (étant donné un ordre et un entier k).
La question de la sélection est un problème essentiel en algorithmique, notamment dans la
recherche du maximum, du minimum et de la médiane. Plusieurs algorithmes ont été proposés et
plusieurs contextes ont été étudiés : algorithmes en ligne, complexité amortie, complexité en
moyenne, ensemble d'objet particuliers etc.
Le problème de la sélection est très lié aux algorithmes de tri : l'un des algorithmes
classiques, Quickselect, utilise d'ailleurs le même principe que l'algorithme de tri Quicksort.
Dans ce rapport on va essayer d’implémenter 2 algorithmes le premier est un séquentiel de
sélection, le deuxième est un algorithme parallèle de sélection. Notre programme va etre
développer en langage C en utilisant le Dev C++.
1) Sélection séquentielle :
Principe de la méthode :
L’algorithme consiste à trouver le k-ième plus petit élement dans une suit d’entier S avec k compris
entre 1 et n. on pose n la dimension de S et Q une petite constante.
La structure de l’algorithme est la suivante :
Si n < Q donc on sort du programme et on retourne le k-ième élement directement. Sinon on
divise S on n/Q sous sequences de Q élement.
Après on détermine la médiane de chaque sous séquences.
On appel la fonction selection_sequentielde manière récursive pour trouver m, la médiane
de n/Q médianes trouvées dans l’étape précédente.
On va créer 3 sous séquences S1,S2 et S3 d’élements de S inférieur, égale et supérieur de m
respictivement.
Si le nombre d’élements de S1 est supérieure ou égal à k alors le k-ième élement est
nécessairement dans S1. On appel selection_sequentielde manière récursive pour trouver
le k-ième élement de S1.
Sinon si le nombre d’élements de S1 + le nombre d’élement de S2 est supérieure ou égal à k,
On retourne le k-ième élement de S1
Sinon on appel selection_sequentiel de manière récursive pour trouver le ( k -  -
)-ième élement de S3.
LARGO & ELMASRY Page 4
Pseudo code :
/* Fonction qui tri un tableau */
Fonction tri_tableau(Tableau S() en Entier,taille en Entier) en
void
Variables i,j,elem en Entier
Pour i allant de 1 à taille
elem <- S(j-1)
Pour j allant de i à taille
S(j)=S(j-1)
S(j)=elem
Fin Pour
Fin Pour
/* Fonction qui calcule la mediane d’un tableau*/
Fonction MedianeTab (Tableau S() en Entier,taille en Entier) en
Entier
Variable m en Entier
Si n%2 = 0
m=n/2
Renvoyer S(m+1)
Sinon
m=(n+1)/2
Renvoyer S(m)
/* Fonction de selection sequentielle*/
Fonction selection_sequentiel (Tableau S() en Entier,k en Entier) en
Entier
Variables Q,n,tableau tab1(10), tableau tab2(10), tableau tab3(10),
tableau tab4(10),i, tableau S1(50), tableau S2(50), tableau
S3(10),n1,n2,n3, tableau tab_m(4),M en Entier
/* Step 1 */
Si n < Q
Tri_tableau(S,n)
Renvoyer S(k)
Sinon
LARGO & ELMASRY Page 5
/* diviser S en plusieurs sous tableaux */
Pour i allant de 0 à 10
Tab1(i)=S(i)
Fin Pour
Pour i allant de 10 à 20
Tab2(i-10)=S(i)
Fin Pour
Pour i allant de 20 à 30
Tab3(i-20)=S(i)
Fin Pour
Pour i allant de 30 à 40
Tab4(i-30)=S(i)
Fin Pour
/* Step 2 */
Tri_tableau(tab1,10)
Tab_m(0)=MedianeTab(tab1,10)
Tri_tableau(tab2,10)
Tab_m(1)=MedianeTab(tab2,10)
Tri_tableau(tab3,10)
Tab_m(2)=MedianeTab(tab3,10)
Tri_tableau(tab4,10)
Tab_m(3)=MedianeTab(tab4,10)
/* Step 3 */
Tri_tableau(tab_m,4)
M=selection_sequentiel(tab_m,3)
/* Step 4 */
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !