Cours dAlgorithmique - PowerPoint PPT Presentation

1 / 99
About This Presentation
Title:

Cours dAlgorithmique

Description:

Ordonner le tableau par valeurs non d croissantes. 6 novembre 2006 ... Ordonner le tableau par valeurs non d croissantes. Nous trions pour. acc l rer les ... – PowerPoint PPT presentation

Number of Views:94
Avg rating:3.0/5.0
Slides: 100
Provided by: Esil9
Category:

less

Transcript and Presenter's Notes

Title: Cours dAlgorithmique


1
Cours dAlgorithmique
  • Marc Gengler
  • Marc.Gengler_at_esil.univ-mrs.fr

Alexandra Bac - Henry Kanoui - Alain Samuel
24h de cours 24h de TD des devoirs un projet et
un examen
2
Les grandes lignes du cours
  • Trier et chercher
  • Listes et arbres
  • Le back-track
  • Arbres équilibrés
  • Récursivité et induction sur la structure
  • Divide and conquer
  • Minimax
  • Dérécursion
  • Divers problèmes particuliers
  • Logique de Hoare
  • Programmation dynamique
  • Complexité et calculabilité

3
Bibliographie
  • Tout ce qui contient
  • algorithmes, algorithms.
  • Internet
  • souvent, cest très (trop) simplifié,
  • et pas toujours correct.

4
Bibliographie
  • Tout ce qui contient
  • algorithmes, algorithms.
  • Internet
  • souvent, cest très (trop) simplifié,
  • et pas toujours correct.
  • Mes choix
  • Introduction to Algorithms, Leiserson et al.
  • Algorithms, Sedgewick.
  • Fundamental Algorithms, Knuth.
  • des anciens cours -)

5
Bibliographie
  • Tout ce qui contient
  • algorithmes, algorithms.
  • Internet
  • souvent, cest très (trop) simplifié,
  • et pas toujours correct.
  • Dautres choix
  • Introduction à lalgorithmique, Leiserson et al.
  • chez Dunod.
  • Initiation à lalgorithmique et aux structures de
    données, Courtin et Kowarski.

6
L O R I G I N E D U M O T A
L G O R I T H M E
7
Al Khwarizmi
  • Célèbre mathématicien à Bagdad,
  • vers 780-850.

8
Al Khwarizmi
  • Célèbre mathématicien à Bagdad,
  • vers 780-850.
  •  Kitâb al-jabr wa al-muqâbala . Livre sur la
    science de la transposition et de la réduction
    résolution systématique de léquation du second
    degré.
  • Traduit en latin au 12e siècle par Gherardo di
    Cremona sous le titre  Dixit Algorismi .

9
Al Khwarizmi
  • Célèbre mathématicien à Bagdad,
  • vers 780-850.
  •  Kitâb al-jabr wa al-muqâbala . Livre sur la
    science de la transposition et de la réduction
    résolution systématique de léquation du second
    degré.
  • Traduit en latin au 12e siècle par Gherardo di
    Cremona sous le titre  Dixit Algorismi .
  • Aussi  Kitâb al Jami wa al Tafriq bi Hisab al
    Hind . Livre de l'addition et de la soustraction
    d'après le calcul des indiens.
  • http //trucsmaths.free.fr/alkhwarizmi.htm
  • http//publimath.irem.univ-mrs.fr/glossaire/AL016.
    htm

10
Al Khwarizmi
X2 8 x 33
2 X
X2
11
Al Khwarizmi
16 X2 8 X 33 16
( X 4 )2 72
4
2 X
X2
12
D I V E R S A L G O R I T H M E
S D E T R I
13
Les tris sur tableaux----------------------------
-------------------------------------
Les hypothèses
  • Tableau dentrées 0 à n-1.
  • Entiers naturels, mais nimporte quel ensemble
    ordonné peut convenir.
  • Les répétitions sont possibles.

Le but
  • Ordonner le tableau par valeurs non décroissantes.

14
Les tris sur tableaux----------------------------
-------------------------------------
Les hypothèses
  • Tableau dentrées 0 à n-1.
  • Entiers naturels, mais nimporte quel ensemble
    ordonné peut convenir.
  • Les répétitions sont possibles.

Le but
Nous trions pour accélérer les recherches !
  • Ordonner le tableau par valeurs non décroissantes.

15
Les tris sur tableaux----------------------------
-------------------------------------
Quelle relation dordre ?
  • En général, lordre est imposé par le monde
    extérieur.
  • Je peux trier des personnes
  • daprès lâge,
  • daprès le poids,
  • daprès la taille,
  • daprès lordre lexicographique des patronymes,
  • . . .

16
Les tris sur tableaux----------------------------
-------------------------------------
Situation initiale
Valeurs
n-1
0 1 2 3
17
Les tris sur tableaux----------------------------
-------------------------------------
Situation initiale
Valeurs
Pas de relation entre les indices et les valeurs !
n-1
0 1 2 3
18
Les tris sur tableaux----------------------------
-------------------------------------
Situation finale
Valeurs
n-1
0 1 2 3
19
Les tris sur tableaux----------------------------
-------------------------------------
Situation finale
Valeurs
Une relation claire entre les indices et les
valeurs !
n-1
0 1 2 3
20
Les tris sur tableaux----------------------------
-------------------------------------
Les tris que nous regardons en cours
  • Tri par échanges.
  • Tri par insertions.
  • Tri bulles.
  • Tri par fusion.

Dautres tris en TD.
21
T R I P A R E C H A N G E S
22
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- situation intermédiaire
Valeurs
Non triées et plus grandes
Triées
n-1
i-1
0 1 2 3
23
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange - suite
Les hypothèses
  • Les entrées de 0 à i-1 sont triées.
  • Elles sont plus petites que les entrées
    suivantes.
  • Les entrées à partir de lindice i ne sont pas
    triées.

24
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange - suite
Les hypothèses
  • Les entrées de 0 à i-1 sont triées.
  • Elles sont plus petites que les entrées
    suivantes.
  • Les entrées à partir de lindice i ne sont pas
    triées.

A faire pour mettre en place lentrée i
  • Chercher lindice j du minimum à partir de i.
  • Echanger les éléments i et j.

25
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- situation intermédiaire
Valeurs
Non triées et plus grandes
Triées
lt- échange -gt
n-1
j
0 1 2 3
i
26
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- situation intermédiaire
Valeurs
Non triées et plus grandes
Triées
n-1
j
0 1 2 3
i
27
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- propriété invariante
  • Nous avions une certaine situation sur
    lintervalle 0 .. i-1
  • les éléments jusquà i-1 sont triés,
  • ceux qui suivent sont plus grands, mais pas
    triés.

28
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- propriété invariante
  • Nous avions une certaine situation sur
    lintervalle 0 .. i-1
  • les éléments jusquà i-1 sont triés,
  • ceux qui suivent sont plus grands, mais pas
    triés.
  • Nous retrouvons la même situation sur
    lintervalle 0 .. i
  • les éléments jusquà i sont triés,
  • ceux qui suivent sont plus grands, mais pas
    triés.

29
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- propriété invariante
  • Nous avions une certaine situation sur
    lintervalle 0 .. i-1
  • les éléments jusquà i-1 sont triés,
  • ceux qui suivent sont plus grands, mais pas
    triés.
  • Nous retrouvons la même situation sur
    lintervalle 0 .. i
  • les éléments jusquà i sont triés,
  • ceux qui suivent sont plus grands, mais pas
    triés.
  • Cette propriété est donc invariante avec i, on
    lappelle

un invariant
30
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- le code
for ( i0 iltn-1 i ) ind_min i
for ( ji1 jltn j ) if ( tj lt
tind_min ) ind_min j aux
ti ti tind_min tind_min
aux
31
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- le code
Fini si i n-1 !
for ( i0 iltn-1 i ) ind_min i
for ( ji1 jltn j ) if ( tj lt
tind_min ) ind_min j aux
ti ti tind_min tind_min
aux
32
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- le code
Fini si i n-1 !
for ( i0 iltn-1 i ) ind_min i
for ( ji1 jltn j ) if ( tj lt
tind_min ) ind_min j aux
ti ti tind_min tind_min
aux
En effet, il nous reste une seule valeur qui est
plus grande que les valeurs précédentes !
33
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- le code
for ( i0 iltn-1 i ) ind_min i
for ( ji1 jltn j ) if ( tj lt
tind_min ) ind_min j aux
ti ti tind_min tind_min
aux
Chercher lindice du plus petit.
34
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- le code
for ( i0 iltn-1 i ) ind_min i
for ( ji1 jltn j ) if ( tj lt
tind_min ) ind_min j aux
ti ti tind_min tind_min
aux
Echange, même si i ind_min.
35
Les tris sur tableaux----------------------------
-------------------------------------
Tri par échange --- la complexité
  • Ont fait n-1 fois, pour i de 0 à n-2
  • Un parcours de i..n-1.
  • Il y a donc un nombre de lectures qui vaut

S (n-i) 0 (n2) i0..n-2
Tri en complexité quadratique.
36
T R I P A R I N S E R T I O N
37
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
Valeurs
Non triées et quelconques
Triées
n-1
i-1
0 1 2 3
38
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion - suite
Les hypothèses
  • Les entrées de 0 à i-1 sont triées.
  • Elles sont plus petites que les entrées
    suivantes.
  • Les entrées à partir de lindice i ne sont pas
    triées.

////////////////////////////////////////////
39
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion - suite
Les hypothèses
  • Les entrées de 0 à i-1 sont triées.
  • Elles sont plus petites que les entrées
    suivantes.
  • Les entrées à partir de lindice i ne sont pas
    triées.

////////////////////////////////////////////
A faire pour mettre en place lentrée i
  • Si elle est plus grande que les précédentes
    RIEN !
  • Si elle est plus petite que certaines précédentes
    linsérer plus à gauche en décalant dautres
    entrées.

40
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
Valeurs
Non triées et quelconques
Plus grande Rien à faire !
Triées
n-1
i-1
0 1 2 3
41
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
Valeurs
Non triées et quelconques
Plus grande Rien à faire !
Triées
n-1
i-1
0 1 2 3
42
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
Valeurs
Non triées et quelconques
Triées
n-1
i-1
0 1 2 3
Plus petit Linsérer à gauche.
43
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
Valeurs
Non triées et quelconques
Triées
n-1
i
0 1 2 3
Plus petit Linsérer à gauche.
44
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
  • Vous avez vu quil y a à nouveau un INVARIANT ?
  • Lequel est-ce ??????????????????

45
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- situation intermédiaire
  • Vous avez vu quil y a à nouveau un INVARIANT ?
  • Lequel est-ce ??????????????????
  • Les éléments déjà traités sont triés,
  • les autres sont dans le désordre et sans rapport
    particulier (ni plus grands, ni plus petits) aux
    premiers.

46
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- le code
for ( i1 iltn i ) cont 1 j
i while ( jgt0 cont ) if (
tj lt tj-1 ) echange(t, j-1,
j) else cont 0
j--
47
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- le code
Pour tous, sauf le premier qui est forcément à sa
place
for ( i1 iltn i ) cont 1 j
i while ( jgt0 cont ) if (
tj lt tj-1 ) echange(t, j-1,
j) else cont 0
j--
48
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- le code
for ( i1 iltn i ) cont 1 j
i while ( jgt0 cont ) if (
tj lt tj-1 ) echange(t, j-1,
j) else cont 0
j--
On échange aussi longtemps que le prédécesseur
existe et quil est plus grand que lélément en
question.
49
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- le code
for ( i1 iltn i ) cont 1 j
i while ( jgt0 cont ) if (
tj lt tj-1 ) echange(t, j-1,
j) else cont 0
j--
On arrête les échanges dès que le prédécesseur
est au plus aussi grand que lélément en question.
50
Les tris sur tableaux----------------------------
-------------------------------------
Tri par insertion --- la complexité
  • Ont fait n-1 fois, pour i de 1 à n-1
  • Jusquà i échanges au maximum (peut-être moins).
  • Le nombre déchanges peut donc atteindre

S i 0 (n2) i1..n-1
Tri en complexité quadratique.
51
T R I P A R B U L L E S
52
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle
Valeurs
Situation anormale Une bulle
Situation normale
n-1
0 1 2 3
53
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle on échange lordre dans la bulle
Valeurs
La bulle a disparu par échange
Situation normale
n-1
0 1 2 3
54
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - principe des algorithmes
Lidée
  • Tant quil y a des bulles,
  • on en choisit une et on la fait monter.

55
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle évolution des bulles
Valeurs
n-1
0 1 2 3
56
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - principe des algorithmes
Lidée
  • Tant quil y a des bulles,
  • on en choisit une et on la fait monter.

De nombreuses optimisations
  • Suivre une bulle et la faire monter aussi haut
    que possible.
  • Si au dernier passage la première bulle était (
    i , i1 ) , il ne peut y avoir de bulle avant (
    i-1 , i ) au passage courant.

57
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle évolution des bulles
Valeurs
Régions qui peuvent être ignorées lors du
prochain passage.
n-1
0 1 2 3
58
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - principe des algorithmes
Lidée
  • Tant quil y a des bulles,
  • on en choisit une et on la fait monter.

De nombreuses optimisations
  • Suivre une bulle et la faire monter aussi haut
    que possible.
  • Si au dernier passage la première bulle était (
    i , i1 ) , il ne peut y avoir de bulle avant (
    i-1 , i ) au passage courant.
  • Faire alternativement monter et descendre des
    bulles.
  • et puis dautres trucs !

59
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - complexité
  • Le tri bulle a une complexité quadratique, car il
    existe des instances pour lesquels il faut 0
    (n2) échanges.

60
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - complexité
  • Le tri bulle a une complexité quadratique, car il
    existe des instances pour lesquels il faut 0
    (n2) échanges.
  • Par contre, pour de nombreuses instances, le
    nombre des échanges est bien plus petit.

61
Les tris sur tableaux----------------------------
-------------------------------------
Tri bulle - complexité
  • Le tri bulle a une complexité quadratique, car il
    existe des instances pour lesquels il faut 0
    (n2) échanges.
  • Par contre, pour de nombreuses instances, le
    nombre des échanges est bien plus petit.
  • Le tri bulle est bien adapté, comme dautres
    tris, pour rétablir lordre dans un tableau
    presque trié (léger désordre produit par quelques
    insertions déléments par exemple).

62
D I F F E R E N T E S N O T I O N
S D E C O M P L E X I T E
63
Les tris sur tableaux----------------------------
-------------------------------------
Différentes notions de complexité
  • Complexité du meilleur cas
  • inintéressante, car ce nest pas le cas typique.

64
Les tris sur tableaux----------------------------
-------------------------------------
Différentes notions de complexité
  • Complexité du meilleur cas
  • inintéressante, car ce nest pas le cas typique.
  • Complexité du cas moyen
  • intéressante, mais difficile à établir,
  • est-ce que mes instances du problème sont dans la
    moyenne ?

65
Les tris sur tableaux----------------------------
-------------------------------------
Différentes notions de complexité
  • Complexité du meilleur cas
  • inintéressante, car ce nest pas le cas typique.
  • Complexité du cas moyen
  • intéressante, mais difficile à établir,
  • est-ce que mes instances du problème sont dans la
    moyenne ?
  • Complexité du pire cas
  • donne une limite supérieure pour le nombre
    dopérations,
  • celle-ci peut être atypique,
  • souvent assez facile à calculer,
  • mais, cest la COMPLEXITE utilisée PAR DEFAUT.

66
T R I P A R F U S I O N
67
Les tris sur tableaux----------------------------
-------------------------------------
Principe du tri par fusion
  • Couper le tableau en deux (mentalement et de
    façon non violente),
  • trier récursivement chaque partie
  • et fusionner les deux parties triées (cf. cours
    dIntroduction à la programmation).

68
Les tris sur tableaux----------------------------
-------------------------------------
Principe du tri par fusion
69
Les tris sur tableaux----------------------------
-------------------------------------
Principe du tri par fusion
Tri récursif des deux moitiés.
70
Les tris sur tableaux----------------------------
-------------------------------------
Principe du tri par fusion
Tri récursif des deux moitiés.
Fusion des deux suites.
71
Les tris sur tableaux----------------------------
-------------------------------------
Complexité du tri par fusion
  • Soit f(n) la fonction de complexité pour trier
    n éléments.
  • Le découpage se fait en temps constant ou 0( n
    ), sil y a copie.
  • Les deux appels récursifs nécessitent 2 f( n/2
    ).
  • La fusion se fait en 0( n ).

72
Les tris sur tableaux----------------------------
-------------------------------------
Complexité du tri par fusion
  • Soit f(n) la fonction de complexité pour trier
    n éléments.
  • Le découpage se fait en temps constant ou 0( n
    ), sil y a copie.
  • Les deux appels récursifs nécessitent 2 f( n/2
    ).
  • La fusion se fait en 0( n ).
  • Donc f(n) 0(n) 2 f(n/2)
  • 0(n) 2 ( 0(n/2) 2
    f(n/4) )
  • 2 0(n) 22 f(n/22)
  • 3 0(n) 23
    f(n/(23))
  • k O(n) 2k
    f(n/(2k))
  • 0(n log n) 2(log n)
    f(n/(2(log n)))
  • 0(n log n) car
    f(n/(2(log n))) f(1) 0

Tri en complexité n log n.
73
R E C H E R C H E D A N S D E
S T A B L E A U X T R I E S
74
Recherche dans des tableaux triés----------------
-------------------------------------------------
  • On utilise lordre pour
  • anticiper labandon dans une recherche linéaire,
  • guider la recherche recherche par dichotomie.

n-1
(n-1)/2
0
petit
moyen
grand
X lt moyen
X
75
Recherche dans des tableaux triés----------------
-------------------------------------------------
  • On utilise lordre pour
  • anticiper labandon dans une recherche linéaire,
  • guider la recherche recherche par dichotomie.

n-1
(n-1)/2
0
petit
moyen
grand
X lt moyen
Oui ! Chercher X dans 0 .. (n-1)/2- 1
X
76
Recherche dans des tableaux triés----------------
-------------------------------------------------
  • On utilise lordre pour
  • anticiper labandon dans une recherche linéaire,
  • guider la recherche recherche par dichotomie.

n-1
(n-1)/2
0
petit
moyen
grand
X lt moyen
Non ! Chercher X dans (n-1)/2 .. n-1
Oui ! Chercher X dans 0 .. (n-1)/2- 1
X
77
Recherche dans des tableaux triés----------------
-------------------------------------------------
Recherche par dichotomie - complexité
  • 1 test -gt n/2 éléments.
  • 2 tests -gt n/4 éléments.
  • 0( log n) tests -gt 1 élément.
  • Est-ce bien lui ? Donc un test en plus.
  • Il existe des arguments théoriques (théorie de
    linformation) qui montrent que lon ne peut pas
    faire mieux.

78
Recherche dans des tableaux triés----------------
-------------------------------------------------
d 0 f n-1 While ( d lt f ) if ( d
f-1 ) if ( x td ) f d
else d f else m
(df)/2 if ( x lt tm )
f m-1 else d m
Return ( x td )
Initialisation.
Intervalle de 2 éléments.
Cas général.
Résultat.
79
Recherche dans des tableaux triés----------------
-------------------------------------------------
Di-chotomie - Tri-chotomie - etc.
  • Di-chotomie
  • 1 test -gt 2 intervalles de n/2 éléments.
  • Donc, 1 log_2 (n) 1 tests.

80
Recherche dans des tableaux triés----------------
-------------------------------------------------
Di-chotomie - Tri-chotomie - etc.
  • Di-chotomie
  • 1 test -gt 2 intervalles de n/2 éléments.
  • Donc, 1 log_2 (n) 1 tests.
  • Tri-chotomie
  • 2 tests -gt 3 intervalles de n/3 éléments.
  • Donc, 2 log_3(n) 1 tests.

81
Recherche dans des tableaux triés----------------
-------------------------------------------------
Di-chotomie - Tri-chotomie - etc.
  • Di-chotomie
  • 1 test -gt 2 intervalles de n/2 éléments.
  • Donc, 1 log_2 (n) 1 tests.
  • Tri-chotomie
  • 2 tests -gt 3 intervalles de n/3 éléments.
  • Donc, 2 log_3(n) 1 tests.
  • K-chotomie
  • k-1 tests -gt k intervalles de n/k éléments.
  • Donc, (k-1) log_k(n) 1 tests.

82
Recherche dans des tableaux triés----------------
-------------------------------------------------
Di-chotomie - Tri-chotomie - etc.
  • Di-chotomie
  • 1 test -gt 2 intervalles de n/2 éléments.
  • Donc, 1 log_2 (n) 1 tests.
  • Tri-chotomie
  • 2 tests -gt 3 intervalles de n/3 éléments.
  • Donc, 2 log_3(n) 1 tests.
  • K-chotomie
  • k-1 tests -gt k intervalles de n/k éléments.
  • Donc, (k-1) log_k(n) 1 tests.

Optimal si k 2 ! ! !
83
Soyons critiques !-------------------------------
----------------------------------
  • Tableau trié
  • Recherche efficace ?
  • Insertions et suppressions pénibles ?

84
Soyons critiques !-------------------------------
----------------------------------
  • Tableau trié
  • Recherche efficace ?
  • Insertions et suppressions pénibles ?
  • Liste triée
  • Insertions et suppressions efficaces ?
  • Recherche pénible ?

85
Soyons critiques !-------------------------------
----------------------------------
  • Tableau trié
  • Recherche efficace ?
  • Insertions et suppressions pénibles ?
  • Liste triée
  • Insertions et suppressions efficaces ?
  • Recherche pénible ?
  • Hashage sur tableaux arbres de recherche
    équilibrés
  • Toutes les opérations sont efficaces ? ?

86
H A S H A G E
87
Hashage------------------------------------------
-----------------------
H Eléments à stocker
Indices dun tableau
INSEE(Marc Gengler)
1.61.01
Attention, certaines cases du tableau
contiennent des valeurs alors que dautres sont
vides.
1.61.01
MG
88
Hashage------------------------------------------
-----------------------
89
Hashage------------------------------------------
-----------------------
Une seule valeur par entrée du tableau ! ! !
90
Hashage------------------------------------------
-----------------------
Une seule valeur par entrée du tableau ! ! !
91
Hashage------------------------------------------
-----------------------
  • Résolution locale des collisions
  • Petite recherche séquentielle dans une liste
    chainée.
  • Prendre la première case libre en séquence dans
    le tableau.
  • Et si on peut supprimer des éléments ????? Des
    éléments qui étaient responsables dune collision
    viennent à disparaître !

92
Hashage------------------------------------------
-----------------------
  • Résolution locale des collisions
  • Petite recherche séquentielle dans une liste
    chainée.
  • Prendre la première case libre en séquence dans
    le tableau.
  • Et si on peut supprimer des éléments ????? Des
    éléments qui étaient responsables dune collision
    viennent à disparaître !
  • Re-hashage
  • Si H(x) est déjà occupé on calcule H(x) ou
    H(xe), etc. jusquà trouver une place.
  • Et si on peut supprimer des éléments ?????

93
Hashage------------------------------------------
-----------------------
  • Résolution locale des collisions
  • Petite recherche séquentielle dans une liste
    chainée.
  • Prendre la première case libre en séquence dans
    le tableau.
  • Et si on peut supprimer des éléments ????? Des
    éléments qui étaient responsables dune collision
    viennent à disparaître !
  • Re-hashage
  • Si H(x) est déjà occupé on calcule H(x) ou
    H(xe), etc. jusquà trouver une place.
  • Et si on peut supprimer des éléments ?????

La solution la plus fréquente chainage des
collisions !
94
Hashage------------------------------------------
-----------------------
X
X
/
95
Hashage------------------------------------------
-----------------------
X
X
Y
/
Y
96
Hashage------------------------------------------
-----------------------
  • Faits
  • La fonction de hashage doit être  uniforme 
    pour des choix au hasard de données d , les
    indices H( d ) doivent être répartis le plus
    uniformément possible.
  • A ce moment, le taux de remplissage donne la
    proportion des collisions.

97
Hashage------------------------------------------
-----------------------
  • Faits
  • La fonction de hashage doit être  uniforme 
    pour des choix au hasard de données d , les
    indices H( d ) doivent être répartis le plus
    uniformément possible.
  • A ce moment, le taux de remplissage donne la
    proportion des collisions.
  • Coût
  • Coût du calcul de H multiplié par le nombre
    moyen de collisions (re-hashage).
  • Coût du calcul de H plus le coût de la
    recherche dans la liste chainée.

98
Synthèse-----------------------------------------
------------------------
  • Quelques tris sur tableaux.
  • Recherche dans un tableau trié.
  • Limites des tableaux et des listes triés.
  • Hashage comme solution alternative.
  • A venir dautres alternatives comme les
  • arbres de recherche équilibrés.

99
m E r C i e T b O n N e J o U r N é E !
! ! n O u B l I e Z p A s D e p R é P a
R e R v O s T D ! ! !
Write a Comment
User Comments (0)
About PowerShow.com