ALGORITHMIQUE IIALGORITHMIQUE II
ALGORITHMIQUE IIALGORITHMIQUE II
TRIS ITERATIFS
1SMI ALGOII
2
Le problème:
Etant donnée une suite de n nombres (a1,a2,…, an), on
cherche une permutation (arrangement) des éléments
de cette suite (a’1,a’2,…, a’n) telle que a’1a’2a’n.
A
partir
de
la
suite
(
7
1
2
6
),
un
algorithme
de
tri
donne
comme
résultat
la
suite
(
1
2
6
7
)
SMI ALGOII
A
partir
de
la
suite
(
7
1
2
6
),
un
algorithme
de
tri
donne
comme
résultat
la
suite
(
1
2
6
7
)
On se limite aux nombres entiers rangés dans un
tableau A à n éléments.
Dans le cas où les éléments sont des collections de
données (enregistrement), on trie le tableau suivant une
clé (champ de l’enregistrement).
3
Tri par sélection:
Algorithme:
pour i=1 à n-1 faire
-
chercher le
1
ème
minimum,
A
k
, de {A
i+1
,…,A
n
}
SMI ALGOII
-
chercher le
1
ème
minimum,
A
k
, de {A
i+1
,…,A
n
}
(K est l’indice de min{Ai+1,…,An} dans le tableau A)
- échanger Aiet Ak
L’algorithme fonctionne selon le schéma suivant:
k
échange
n1 i
A
trié
Exemple
73295 4
23795 4
23 7 9 5 4
23 4 5 7 9
23495 7
23459 7
4SMI ALGOII
Analyse du tri par sélection
Algorithme:
Tri_selection(A,n)
début
pour i := 1 àn-1 faire
//Recherche de min{Ai, …, An} = Ak
k := i;
pour
j:=i+1
à
n
faire
La boucle j détermine le ièminimum;
elle tourne n-i fois (au maximum) pour
faire (n-i) tests d’éléments.
Les échanges de A[k] et A[i]
demandent 3 opérations.
La complexité du corps de la boucle j
est de la forme
a(n
-
i)+b, donc en O(n
-
i) ( i=1, …, n
-
1).
5
pour
j:=i+1
à
n
faire
si A[j] < A[k] alors k:=j;
fsi;
fpour
// échange de Aket Ai
temp := A[k];
A[k] := A[i];
A[i] := temp;
fpour;
fin
a(n
-
i)+b, donc en O(n
-
i) ( i=1, …, n
-
1).
La complexité de l’algorithme est de
l’ordre de:
SMI ALGOII
T(n) = O(n2)
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 !