Algorithmique
Algorithmique
Algorithmique
Adel Khalfallah
[email protected]
Structures séquentielles
Adel Khalfallah
[email protected]
• Listes
• Piles
• Files
•Chainage
Adel Khalfallah - Institut Supérieur d’Informatique - 7
Listes - Implantations
Liste circulaires
octets
• L’ordinateur le plus rapide (en 2015) traite 16,32 1015 opérations par
secondes.
A[i+1] A[i] C6
(𝑡 −1)
i i-1 C7
(𝑡 −1)
• Cas le plus défavorable: Que se passe-t-il lorsque le tableau est déjà trié en ordre décroissant ?
( ) ( )
∑ 𝑗= ∑ 𝑗 −1= − 1; ∑ 𝑗−1 =∑ 𝑗=
Donc
,
𝒫 ,
1
=𝑘 1− 1−
𝑘
• Le tri fusion offre des complexités moyenne et au pire des cas similaires
• Le tri par insertion offre des complexités moyennes et au pire des cas
similaires mais moins bonnes que celles du tri fusion
𝐶 𝑔(𝑛)
𝑓(𝑛)
𝐶 𝑔(𝑛)
𝐶𝑔(𝑛)
𝑓(𝑛)
𝑓(𝑛)
𝐶𝑔(𝑛)
donc donc
donc donc
donc
donc
6𝑛 𝑛 log 𝑛 6𝑛 = 𝒪 𝑛 log 𝑛 et 6𝑛 ≠
𝜃 𝑛 log 𝑛 et 6𝑛 ≠ Ω 𝑛 log 𝑛
8𝑛 − 4 = 𝜃 8𝑛 − 4
Algorithme coût
Recherche dichotomique dans un tableau trié 𝒪(log 𝑛 )
Calcul du produit scalaire de 2 vecteurs 𝒪(𝑛)
Tri par fusion 𝒪(𝑛 log 𝑛 )
Tours de Hanoi 𝒪 2
• Il y a 2 appels récursifs
• •
• ,…,
• on a bien : et
F(0)
F(1)=1*F(0)
F(2)=2*F(1)
F(3)=3*F(2)
F(4)=4*F(3)
F(5)=5*F(4)
F(0)=1
F(1)=1*1
F(2)=2*1
F(3)=3*2
F(4)=4*6
F(5)=5*24
n-1
n
1 2 3
n n-1
1 2 3
n-1 n
1 2 3
Hanoi(3,1,3)
2 9
3 6 10 13
Déplacer(1,1,3) 5 7
Déplacer(1,3,2) Déplacer(1,2,1) Déplacer(1,1,3)
• D’où et
• Complexité exponentielle !
• est la taille des sous problèmes, s’il n’est pas entier il est remplacé par ou
• est le coût de l’appel n en dehors des appels récursifs; est donc positive
𝑓
𝑛
𝑓
𝑛 … 𝑓
𝑛 𝑛
𝑎𝑓( )
𝑏
𝑏 a 𝑏 𝑏
a
a
… … …
𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛
𝑓 𝑓 𝑓 𝑓 𝑓 𝑓 𝑓 𝑓 𝑓 𝑎 𝑓( )
𝑏 𝑏 𝑏 𝑏 𝑏 𝑏 𝑏 𝑏 𝑏 𝑏
a a a a a a a a a
… … … … … … … … …
( )
Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(1) Θ(𝑎 )
On a alors:
Soit lorsque
= donc:
+ =
Lorsque
lorsque
= log
lorsque
g si
Les termes plus petits que n0 sont constants ils sont majorés par
Lorsque
T
3. Si alors
T
• Lorsque f(n) est plus grande asymptotiquement que d’un facteur et obéit à la
condition de régularité (la plupart des fonctions bornées polynomialement y obeissent) alors
• Exemple:
donc
D’où =
Min du sous
Triés
tableau non trié
ième itération
i min 1 2 3 4 5 6 7
1 4 10 14 11 5 7 9 21
2 5 5 14 11 10 7 9 21
3 6 5 7 11 10 14 9 21
4 4 5 7 9 10 14 11 21
5 6 5 7 9 10 14 11 21
6 6 5 7 9 10 11 14 21
• Pire des cas, le tableau est trié en ordre inverse: Il faut effectuer j-1 décalages à
chaque itération, la complexité est en
Or donc
• Lorsque
• Pour un tableau de taille i, le nombre moyen de coût de décalage est:
7 10 1 7 20 3 9 5
6 1 7 10 3 9 5 20
5 1 7 3 9 5 10 20
4 1 3 7 5 9 10 20
3 1 3 5 7 9 10 20
9 1 8 6 2 7 4 5
9 1 8 6 2 7 4 5
Sous 1 9 6 8 2 7 4 5
Fusion en 2
tableaux
triés
= sous tableaux
1 6 8 9 2 4 5 7 triés
1 2 4 5 6 7 8 9
Supérieurs au pivot
• Complexité au pire des cas: Il se produit lorsque le tableau est déjà trié, l’appel
récursif se fait alors pour un sous tableau de taille 1 et un sous tableau de taille n-
1, le partitionnement a un coût , on a alors
donc
𝒫 𝒫, ,
où , est l’ensemble des tableaux en entrée où le pivot est en position i et le coût pour ces
entrées. On admet que chaque position du pivot est équiprobable, i.e. pour tout i,j il y a autant
de tableaux où le pivot est en position i que de tableaux où il est en position j
𝒫
, , , est l’ensemble des tableaux de taille n
• L’arbre constitué d’une racine, d’un arbre binaire (appelé le sous arbre
gauche) et d’un autre arbre binaire (appelé le sous arbre droit) est un
arbre binaire
r’
• La hauteur d’un arbre est la plus grande profondeur des ses feuilles
Adel Khalfallah - Institut Supérieur d’Informatique - 138
1
2 3
2 3
4
4 4 4
2 3
4
4
2 3
4 7 10
5 6 8 9 11 12
20
10 40
3 18 25 46
13 20 21 45 62
30
43
21 50
15 44 56
42 55 72
12 46
6 13
• Insertion à la racine
• Requière de couper l’arbre en 2 sous arbres : le premier contenant tous les
éléments inférieurs au nouvel élément le second contenant tous les éléments
supérieurs au nouvel élément
20
10 40
3 18 25 46
13 20 21 45 62
30
20
10 40
3 18 25 46
13 20 21 45 62
30
20
10 40
3 18 25 46
13 20 21 45 62
30
20
10 40
3 18 25 46
13 20 21 45 62
30
20
10 40
3 18 25 46
13 20 21 45 62
30
20
10 40
3 18 25 46
13 20 21 45 62
30
6
6
8
2 8
2
1 5
1
6 6
8 8
2 2
1 5
1 3
4 4
2 8 2
5 12 5 12
b
A b
A
c
Où S est appelé l’ensemble fini des sommets (on dit aussi nœuds) et
, lorsque le graphe est orienté A est appelé l’ensemble fini
des arcs, lorsqu’il est non orienté, il est appelé l’ensemble fini des
arêtes
• Un graphe valué est défini par:
1 2
3 4
1 2
3 4
1 0 1 1 0 0
2 1 0 1 1 0
1
3 1 1 0 1 1
2 3 4 0 1 1 0 1
5 0 0 1 1 0
4 5