Chapitre 4 : Algorithmes de recherche et de tri
|
|
- Claude Marcil
- il y a 7 ans
- Total affichages :
Transcription
1 Chapitre 4 : Algorithmes de recherche et de tri Faculté des Sciences, Oujda Master Spécialisé Ingénierie Informatique Université Mohamed Premier Septembre, 2012
2 Sommaire du chapitre 4
3 Sommaire du chapitre 4 Algorithmes de recherche
4 Sommaire du chapitre 4 Algorithmes de recherche Algorithmes de tri
5 Algorithmes de recherche Problème de recherche Définition 1.1
6 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée :
7 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée : 1 Une liste a de taille n.
8 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée : 1 Une liste a de taille n. 2 Un élément e.
9 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée : 1 Une liste a de taille n. 2 Un élément e. Sortie :
10 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée : 1 Une liste a de taille n. 2 Un élément e. Sortie : 1 Indice de l élément e dans a, si e a.
11 Algorithmes de recherche Problème de recherche Définition 1.1 Entrée : 1 Une liste a de taille n. 2 Un élément e. Sortie : 1 Indice de l élément e dans a, si e a. 2 0, sinon.
12 Algorithmes de recherche Algorithme de recherche séquentielle
13 Algorithmes de recherche Algorithme de recherche séquentielle Idée : parcourir la liste a.
14 Algorithmes de recherche Algorithme de recherche séquentielle Idée : parcourir la liste a. Élément par élément (de gauche à droite, ou de droite à gauche);
15 Algorithmes de recherche Algorithme de recherche séquentielle Idée : parcourir la liste a. Élément par élément (de gauche à droite, ou de droite à gauche); En commençant du premier (ou dernier) élément;
16 Algorithmes de recherche Algorithme de recherche séquentielle Idée : parcourir la liste a. Élément par élément (de gauche à droite, ou de droite à gauche); En commençant du premier (ou dernier) élément; Jusqu à trouver l élément e, ou atteindre la fin (ou le début) de la liste.
17 Algorithmes de recherche Pseudo-code 1.2
18 Algorithmes de recherche Pseudo-code 1.2 Fonction Rech Séq(a : Liste; n, e : Entier) : Entier Var i : Entier; Début Pour i := 1 à n Faire Si(a[i] = e) Alors Retourner (i); FinSi FinPour Retourner (0); Fin
19 Algorithmes de recherche Complexité
20 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme.
21 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas :
22 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe, mais en dernière position (cas d une recherche orientée de gauche à droite).
23 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe, mais en dernière position (cas d une recherche orientée de gauche à droite). C(n) = n = O(n).
24 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe, mais en dernière position (cas d une recherche orientée de gauche à droite). C(n) = n = O(n). Dans le meilleur des cas :
25 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe, mais en dernière position (cas d une recherche orientée de gauche à droite). C(n) = n = O(n). Dans le meilleur des cas : L élément e existe en première position (cas d une recherche orientée de gauche à droite).
26 Algorithmes de recherche Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe, mais en dernière position (cas d une recherche orientée de gauche à droite). C(n) = n = O(n). Dans le meilleur des cas : L élément e existe en première position (cas d une recherche orientée de gauche à droite). C(n) = 1 = Ω(1).
27 Algorithmes de recherche Algorithme de recherche dichotomique
28 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée.
29 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée :
30 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ].
31 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ]. 2 Comparer e avec l élément a m. Il y a trois cas.
32 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ]. 2 Comparer e avec l élément a m. Il y a trois cas. Si e = a m : on a trouvé l élément e à l indice m.
33 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ]. 2 Comparer e avec l élément a m. Il y a trois cas. Si e = a m : on a trouvé l élément e à l indice m. Si e > a m : lancer la recherche dans le sous-tableau a[m f ].
34 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ]. 2 Comparer e avec l élément a m. Il y a trois cas. Si e = a m : on a trouvé l élément e à l indice m. Si e > a m : lancer la recherche dans le sous-tableau a[m f ]. Si e < a m : lancer la recherche dans le sous-tableau a[d...m 1].
35 Algorithmes de recherche Algorithme de recherche dichotomique Hypothèse : la liste a[d...f ] est déjà triée. Idée : 1 Tant que cela est possible, diviser la liste a en 2 sous-listes : a[d...m] et a[m f ] où m est le milieu de [d...f ]. 2 Comparer e avec l élément a m. Il y a trois cas. Si e = a m : on a trouvé l élément e à l indice m. Si e > a m : lancer la recherche dans le sous-tableau a[m f ]. Si e < a m : lancer la recherche dans le sous-tableau a[d...m 1]. Il s agit bien d un algorithme de type Diviser pour régner.
36 Algorithmes de recherche Pseudo-code 1.3
37 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier
38 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier;
39 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début
40 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi
41 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f 2 ;
42 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f ; 2 Si(a[m] = e) Alors Retourner (m); FinSi
43 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f ; 2 Si(a[m] = e) Alors Retourner (m); FinSi Si(a[m] < e) Alors Retourner Rech Dicho(a, m + 1, f, e);
44 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f ; 2 Si(a[m] = e) Alors Retourner (m); FinSi Si(a[m] < e) Alors Retourner Rech Dicho(a, m + 1, f, e); Sinon Retourner Rech Dicho(a, d, m 1, e);
45 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f ; 2 Si(a[m] = e) Alors Retourner (m); FinSi Si(a[m] < e) Alors Retourner Rech Dicho(a, m + 1, f, e); Sinon Retourner Rech Dicho(a, d, m 1, e); FinSi
46 Algorithmes de recherche Pseudo-code 1.3 Fonction Rech Dicho(a : Liste; d, f, e : Entier) : Entier Var m : Entier; Début Si(d > f ) Alors Retourner (0); FinSi m := d+f ; 2 Si(a[m] = e) Alors Retourner (m); FinSi Si(a[m] < e) Alors Retourner Rech Dicho(a, m + 1, f, e); Sinon Retourner Rech Dicho(a, d, m 1, e); FinSi Fin
47 Algorithmes de recherche Complexité
48 Algorithmes de recherche Complexité Soit n = f d + 1, la taille de la liste a.
49 Algorithmes de recherche Complexité Soit n = f d + 1, la taille de la liste a. Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas :
50 Algorithmes de recherche Complexité Soit n = f d + 1, la taille de la liste a. Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe en une position extrêmale.
51 Algorithmes de recherche Complexité Soit n = f d + 1, la taille de la liste a. Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe en une position extrêmale. { 0 si n = 0 C(n) = C( n 2 ) + 2 si n 1
52 Algorithmes de recherche Complexité Soit n = f d + 1, la taille de la liste a. Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : L élément e n existe pas dans la liste a, ou bien il existe en une position extrêmale. { 0 si n = 0 C(n) = C( n 2 ) + 2 si n 1 Alors : C(n) = Θ(log 2 n).
53 Problème de tri Définition 1.4
54 Problème de tri Définition 1.4 Entrée :
55 Problème de tri Définition 1.4 Entrée : Une liste a de taille n.
56 Problème de tri Définition 1.4 Entrée : Une liste a de taille n. Sortie :
57 Problème de tri Définition 1.4 Entrée : Une liste a de taille n. Sortie : Une permutation de la liste a qui soit ordonnée en sens croissant ou décroissant.
58 Algorithme de tri par sélection
59 Algorithme de tri par sélection Deux formes de sélection : maximum ou minimum. Idée : À chaque itération i de l algorithme :
60 Algorithme de tri par sélection Deux formes de sélection : maximum ou minimum. Idée : À chaque itération i de l algorithme : 1 On cherche le minimum du tableau a[i...n] non encore trié.
61 Algorithme de tri par sélection Deux formes de sélection : maximum ou minimum. Idée : À chaque itération i de l algorithme : 1 On cherche le minimum du tableau a[i...n] non encore trié. 2 On l échange avec a i (le premier élément dans ce tableau).
62 Pseudo-code 1.5
63 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier
64 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] }
65 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier;
66 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début
67 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d;
68 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d; Pout i := d + 1 à f Faire
69 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d; Pout i := d + 1 à f Faire Si(a[i] < a[j]) Alors j := i; FinSi
70 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d; Pout i := d + 1 à f Faire Si(a[i] < a[j]) Alors j := i; FinSi FinPour
71 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d; Pout i := d + 1 à f Faire Si(a[i] < a[j]) Alors j := i; FinSi FinPour Retourner (j);
72 Pseudo-code 1.5 Fonction Obtenir Min(a : Liste; d, f : Entier) : Entier { retourne l indice du minimum du tableau a[d...f ] } Var i, j : Entier; Début j := d; Pout i := d + 1 à f Faire Si(a[i] < a[j]) Alors j := i; FinSi FinPour Retourner (j); Fin
73 Pseudo-code 1.6
74 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier)
75 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] }
76 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier;
77 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier; Début
78 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier; Début t := a[i];
79 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier; Début t := a[i]; a[i] := a[j];
80 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier; Début t := a[i]; a[i] := a[j]; a[j] := t;
81 Pseudo-code 1.6 Fonction Echanger(a : Liste; i, j : Entier) { échange les deux éléments a[i] et a[j] } Var t : Entier; Début t := a[i]; a[i] := a[j]; a[j] := t; Fin
82 Pseudo-code 1.7
83 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier)
84 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum }
85 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier;
86 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début
87 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début Pour i := 1 à (n 1) Faire
88 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début Pour i := 1 à (n 1) Faire imin := Obtenir Min(a, i, n);
89 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début Pour i := 1 à (n 1) Faire imin := Obtenir Min(a, i, n); Si(imin i) Alors Echanger(a, i, imin) FinSi
90 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début Pour i := 1 à (n 1) Faire imin := Obtenir Min(a, i, n); Si(imin i) Alors Echanger(a, i, imin) FinSi FinPour
91 Pseudo-code 1.7 Fonction Tri Sélection(a : Liste; n : Entier) { algorithme de tri par sélection du minimum } Var i, imin : Entier; Début Pour i := 1 à (n 1) Faire imin := Obtenir Min(a, i, n); Si(imin i) Alors Echanger(a, i, imin) FinSi FinPour Fin
92 Complexité
93 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme.
94 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Coût de la procédure Obtenir Min en comparaisons : (f d).
95 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Coût de la procédure Obtenir Min en comparaisons : (f d). Coût de la procédure Tri Selction en comparaisons :
96 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Coût de la procédure Obtenir Min en comparaisons : (f d). Coût de la procédure Tri Selction en comparaisons : À chaque itération i, l algorithme effectue (n i) comparaisons.
97 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Coût de la procédure Obtenir Min en comparaisons : (f d). Coût de la procédure Tri Selction en comparaisons : À chaque itération i, l algorithme effectue (n i) comparaisons. C(n) = n 1 (n 1)n i=1 (n i) = (n 1)+(n 2) = 2.
98 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Coût de la procédure Obtenir Min en comparaisons : (f d). Coût de la procédure Tri Selction en comparaisons : À chaque itération i, l algorithme effectue (n i) comparaisons. C(n) = n 1 (n 1)n i=1 (n i) = (n 1)+(n 2) = L algorithme tourne alors en Θ(n 2 ). 2.
99 Algorithme de tri par insertion
100 Algorithme de tri par insertion Idée : À chaque itération i de l algorithme :
101 Algorithme de tri par insertion Idée : À chaque itération i de l algorithme : Placer l élément a[i] dans le tableau a[1...i 1] (déjà trié) dans sa place convenable.
102 Pseudo-code 1.8
103 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier)
104 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion }
105 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier;
106 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début
107 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire
108 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1;
109 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire
110 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire a[j + 1] := a[j]; j := j 1;
111 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire a[j + 1] := a[j]; j := j 1; FinTQ
112 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire a[j + 1] := a[j]; j := j 1; FinTQ a[j + 1] := key;
113 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire a[j + 1] := a[j]; j := j 1; FinTQ a[j + 1] := key; FinPour
114 Pseudo-code 1.8 Fonction Tri Insertion(a : Liste; n : Entier) { algorithme de tri par insertion } Var i, j, key : Entier; Début Pour i := 2 à n Faire key := a[i]; j := i 1; Tant Que((j > 0) et (a[j] > key)) Faire a[j + 1] := a[j]; j := j 1; FinTQ a[j + 1] := key; FinPour Fin
115 Complexité
116 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme.
117 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas :
118 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : Configuration : un tableau trié dans l ordre décroissant (le tableau est trié dans l ordre inverse).
119 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : Configuration : un tableau trié dans l ordre décroissant (le tableau est trié dans l ordre inverse). Placer l élément a[i] dans le tableau a[1...i 1] nécessite (i 1) comparaisons.
120 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : Configuration : un tableau trié dans l ordre décroissant (le tableau est trié dans l ordre inverse). Placer l élément a[i] dans le tableau a[1...i 1] nécessite (i 1) comparaisons. C(n) = n i=2 (i 1) = (n 1) = (n 1)n 2.
121 Complexité Soit C(n) le nombre de comparaisons effectuées par l algorithme. Dans le pire des cas : Configuration : un tableau trié dans l ordre décroissant (le tableau est trié dans l ordre inverse). Placer l élément a[i] dans le tableau a[1...i 1] nécessite (i 1) comparaisons. C(n) = n (n 1)n i=2 (i 1) = (n 1) = 2. Par suite : C(n) = O(n 2 ).
122 Complexité
123 Complexité Dans le meilleur des cas :
124 Complexité Dans le meilleur des cas : Configuration : un tableau trié dans l ordre croissant (le tableau est déjà trié).
125 Complexité Dans le meilleur des cas : Configuration : un tableau trié dans l ordre croissant (le tableau est déjà trié). Placer l élément a[i] dans le tableau a[1...i 1] nécessite une seule comparaison.
126 Complexité Dans le meilleur des cas : Configuration : un tableau trié dans l ordre croissant (le tableau est déjà trié). Placer l élément a[i] dans le tableau a[1...i 1] nécessite une seule comparaison. C(n) = n i=2 (1) = = (n 1).
127 Complexité Dans le meilleur des cas : Configuration : un tableau trié dans l ordre croissant (le tableau est déjà trié). Placer l élément a[i] dans le tableau a[1...i 1] nécessite une seule comparaison. C(n) = n i=2 (1) = = (n 1). Par suite : C(n) = Ω(n).
128 Algorithme de tri à bulles
129 Algorithme de tri à bulles Idée :
130 Algorithme de tri à bulles Idée : Consiste à permuter les éléments adjacents s ils ne sont pas ordonnés.
131 Algorithme de tri à bulles Idée : Consiste à permuter les éléments adjacents s ils ne sont pas ordonnés. Continuer ce processus jusqu à ce que le tableau soit entièrement trié.
132 Algorithme de tri à bulles Idée : Consiste à permuter les éléments adjacents s ils ne sont pas ordonnés. Continuer ce processus jusqu à ce que le tableau soit entièrement trié. À chaque itération i, on parcourt le tableau de droite à gauche pour placer le minimum dans la position i par une suite d échange d éléments adjacents.
133 Pseudo-code 1.9
134 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier)
135 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles }
136 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier;
137 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début
138 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire
139 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire
140 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors
141 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors Echanger(a, j 1, j);
142 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors Echanger(a, j 1, j); FinSi
143 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors Echanger(a, j 1, j); FinSi FinPour
144 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors Echanger(a, j 1, j); FinSi FinPour FinPour
145 Pseudo-code 1.9 Fonction Tri Bulles(a : Liste; n : Entier) { algorithme de tri à bulles } Var i, j : Entier; Début Pour i := 1 à (n 1) Faire Pour j := n à (i + 1) Par Pas de ( 1) Faire Si(a[j] < a[j 1]) Alors Echanger(a, j 1, j); FinSi FinPour FinPour Fin
146 Complexité
147 Complexité Soit C(n) le nombre de comparaisons effectuées par le tri à bulles.
148 Complexité Soit C(n) le nombre de comparaisons effectuées par le tri à bulles. À chaque itération i, on effectue (n i) comparaisons.
149 Complexité Soit C(n) le nombre de comparaisons effectuées par le tri à bulles. À chaque itération i, on effectue (n i) comparaisons. C(n) = n 1 (n 1)n i=1 (n i) = (n 1) + (n 2) =. 2
150 Complexité Soit C(n) le nombre de comparaisons effectuées par le tri à bulles. À chaque itération i, on effectue (n i) comparaisons. C(n) = n 1 (n 1)n i=1 (n i) = (n 1) + (n 2) =. 2 L algorithme est alors en Θ(n 2 )
151 Algorithme de tri par fusion
152 Algorithme de tri par fusion Il s agit d un algorithme de type Diviser pour régner.
153 Algorithme de tri par fusion Il s agit d un algorithme de type Diviser pour régner. Idée :
154 Algorithme de tri par fusion Il s agit d un algorithme de type Diviser pour régner. Idée : Diviser le tableau de taille n, en 2 sous-tableaux de taille n 2 chacun.
155 Algorithme de tri par fusion Il s agit d un algorithme de type Diviser pour régner. Idée : Diviser le tableau de taille n, en 2 sous-tableaux de taille n 2 chacun. Trier chacun de ces 2 sous-tableaux séparément (par appel récursif).
156 Algorithme de tri par fusion Il s agit d un algorithme de type Diviser pour régner. Idée : Diviser le tableau de taille n, en 2 sous-tableaux de taille n 2 chacun. Trier chacun de ces 2 sous-tableaux séparément (par appel récursif). Interclasser les deux sous-tableaux triés pour obtenir un seul tableau trié.
157 Pseudo-code 1.10
158 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier)
159 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion }
160 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier;
161 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début
162 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors
163 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f 2 ;
164 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f ; 2 Tri Fusion(a, d, m);
165 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f ; 2 Tri Fusion(a, d, m); Tri Fusion(a, m + 1, f );
166 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f ; 2 Tri Fusion(a, d, m); Tri Fusion(a, m + 1, f ); InterClasser(a, d, f, m);
167 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f ; 2 Tri Fusion(a, d, m); Tri Fusion(a, m + 1, f ); InterClasser(a, d, f, m); FinSi
168 Pseudo-code 1.10 Fonction Tri Fusion(a : Liste; d, f : Entier) { algorithme de tri par fusion } Var m : Entier; Début Si(d < f ) Alors m := d+f ; 2 Tri Fusion(a, d, m); Tri Fusion(a, m + 1, f ); InterClasser(a, d, f, m); FinSi Fin
169 Pseudo-code 1.11
170 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier)
171 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés }
172 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier;
173 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste;
174 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début
175 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire
176 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i];
177 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i]; FinPour
178 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i]; FinPour Pour i := m + 1 à f Faire
179 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i]; FinPour Pour i := m + 1 à f Faire b[i] := a[f i + m + 1];
180 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i]; FinPour Pour i := m + 1 à f Faire b[i] := a[f i + m + 1]; FinPour
181 Pseudo-code 1.11 Fonction InterClasser(a : Liste; d, f, m : Entier) { procédure d interclassement des deux sous-tableaux triés } Var i, j, k : Entier; b : Liste; Début Pour i := d à m Faire b[i] := a[i]; FinPour Pour i := m + 1 à f Faire b[i] := a[f i + m + 1]; FinPour
182 Pseudo-code 1.12
183 Pseudo-code 1.12 { suite de la procédure d interclassement }
184 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d;
185 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire
186 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors
187 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; }
188 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon
189 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon {a[k] := b[j]; j := j 1; }
190 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon {a[k] := b[j]; j := j 1; } FinSi
191 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon {a[k] := b[j]; j := j 1; } FinSi k := k + 1;
192 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon {a[k] := b[j]; j := j 1; } FinSi k := k + 1; FinTQ
193 Pseudo-code 1.12 { suite de la procédure d interclassement } i := d; j := f ; k := d; Tant Que(i j) Faire Si(b[i] < b[j]) Alors {a[k] := b[i]; i := i + 1; } Sinon {a[k] := b[j]; j := j 1; } FinSi k := k + 1; FinTQ Fin
194 Complexité
195 Complexité Soit n = f d + 1, la taille du tableau a[d...f ].
196 Complexité Soit n = f d + 1, la taille du tableau a[d...f ]. Soit C(n) le nombre de comparaisons effectuées par le tri par fusion.
197 Complexité Soit n = f d + 1, la taille du tableau a[d...f ]. Soit C(n) le nombre de comparaisons effectuées par le tri par fusion. La procédure InterClasser effectue n comparaisons.
198 Complexité Soit n = f d + 1, la taille du tableau a[d...f ]. Soit C(n) le nombre de comparaisons effectuées par le tri par fusion. La procédure InterClasser effectue n comparaisons. Par conséquent, un coût en Θ(n).
199 Complexité Soit n = f d + 1, la taille du tableau a[d...f ]. Soit C(n) le nombre de comparaisons effectuées par le tri par fusion. La procédure InterClasser effectue n comparaisons. Par conséquent, un coût en Θ(n). D autre part, C(n) = 2C( n 2 ) + Θ(n).
200 Complexité Soit n = f d + 1, la taille du tableau a[d...f ]. Soit C(n) le nombre de comparaisons effectuées par le tri par fusion. La procédure InterClasser effectue n comparaisons. Par conséquent, un coût en Θ(n). D autre part, C(n) = 2C( n 2 ) + Θ(n). Ce qui donne : C(n) = Θ(n log 2 n).
Architecture des Systèmes d Information Architecture des Systèmes d Information
Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau
Plus en détail1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Plus en détailintroduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
Plus en détailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailQuelques Algorithmes simples
Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailAlgorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
Plus en détailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en détail4. Les structures de données statiques
4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer
Plus en détailBases de données documentaires et distribuées Cours NFE04
Bases de données documentaires et distribuées Cours NFE04 Introduction a la recherche d information Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département
Plus en détailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII
ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)
Plus en détailCalcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.
1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le
Plus en détailSUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com
Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique
Plus en détailAlgorithmique et structures de données I
Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence
Plus en détailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détail# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailRésolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
Plus en détailUniversité du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.
Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local
Plus en détailGroupe symétrique. Chapitre II. 1 Définitions et généralités
Chapitre II Groupe symétrique 1 Définitions et généralités Définition. Soient n et X l ensemble 1,..., n. On appelle permutation de X toute application bijective f : X X. On note S n l ensemble des permutations
Plus en détailJean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux
Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailCCP PSI - 2010 Mathématiques 1 : un corrigé
CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détailLes deux points les plus proches
MPSI Option Informatique Année 2001, Deuxième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Les eux pots les plus proches Lors e cette séance, nous allons nous téresser au problème suivant :
Plus en détailDéfinitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailAlgorithmique et Programmation
École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................
Plus en détailDérivation : Résumé de cours et méthodes
Dérivation : Résumé de cours et métodes Nombre dérivé - Fonction dérivée : DÉFINITION (a + ) (a) Etant donné est une onction déinie sur un intervalle I contenant le réel a, est dérivable en a si tend vers
Plus en détailAlgorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet
Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques Laurent Canet Le 2 juillet 2003 Table des matières I IN202 - Algorithmique 6 1 Système formel de preuve de
Plus en détailEncryptions, compression et partitionnement des données
Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailCours d Analyse. Fonctions de plusieurs variables
Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailContexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,
Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très
Plus en détailCHAPITRE V. Recherche et tri
Cherchez et vous trouverez,... car qui cherche trouve. Matthieu 7 7-8 et Luc 11 9-10 CHAPITRE V Recherche et tri Objectif. Comprendre les techniques de base pour organiser des données ordonnées. Ce chapitre
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailRésolution d équations non linéaires
Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailLimites finies en un point
8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,
Plus en détailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailONe Key ID Compte InfoCentre pour les entreprises Compte auprès du ministère de l Environnement (MEO)
Pour avoir accès au Registre environnemental des activités et des secteurs (REAS), vous aurez besoin des éléments suivants : ONe Key ID Compte InfoCentre pour les entreprises Compte auprès du ministère
Plus en détailLa classification automatique de données quantitatives
La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations
Plus en détailOrganigramme / Algorigramme Dossier élève 1 SI
Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué
Plus en détailRappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Plus en détailConstruction d un fichier de zone Déboguage et dépannage
Construction d un fichier de zone Déboguage et dépannage Atelier AfTLD, Yaoundé 2004 Construction d un fichier de zone Choisir un nom de domaine: .ws.trstech.net Ecrire le nom et l adresse IP de votre
Plus en détailUne nouvelle approche de détection de communautés dans les réseaux sociaux
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS Département d informatique et d ingénierie Une nouvelle approche de détection de communautés dans les réseaux sociaux Mémoire (INF 6021) pour l obtention du grade de Maîtrise
Plus en détail4D v11 SQL Release 5 (11.5) ADDENDUM
ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release
Plus en détailCORRECTION EXERCICES ALGORITHME 1
CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré
Plus en détailDécision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)
Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck) Stéphane Cardon Nathalie Chetcuti-Sperandio Fabien Delorme Sylvain agrue CRI - Université d Artois {cardon,chetcuti,delorme,lagrue}@cril.univ-artois.fr
Plus en détailCours de Probabilités et de Statistique
Cours de Probabilités et de Statistique Licence 1ère année 2007/2008 Nicolas Prioux Université Paris-Est Cours de Proba-Stat 2 L1.2 Science-Éco Chapitre Notions de théorie des ensembles 1 1.1 Ensembles
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailSPECIFICATION DES ECHANGES DE DONNEES INFORMATISES (E.D.I.)
SPECIFICATION DES ECHANGES DE DONNEES INFORMATISES (E.D.I.) Dernière mise à jour : octobre 2013 Ce document a pour objectif de décrire ce que l OPCA (OPCA 3+) attend du fichier à transmettre par l adhérent.
Plus en détailINFORMATIONS DIVERSES
Nom de l'adhérent : N d'adhérent :.. INFORMATIONS DIVERSES Rubrique Nom de la personne à contacter AD Date de début exercice N BA Date de fin exercice N BB Date d'arrêté provisoire BC DECLARATION RECTIFICATIVE
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en détailTravaux Dirigés n 1 : chaînes de caractères
UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void
Plus en détailÉquations non linéaires
Équations non linéaires Objectif : trouver les zéros de fonctions (ou systèmes) non linéaires, c-à-d les valeurs α R telles que f(α) = 0. y f(x) α 1 α 2 α 3 x Equations non lineaires p. 1/49 Exemples et
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailEnsimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1
Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites
Plus en détail* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours
Exo7 Continuité (étude globale). Diverses fonctions Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr * très facile ** facile *** difficulté moyenne **** difficile *****
Plus en détailLa NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.
La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of
Plus en détailCARTE DE VOEUX À L ASSOCIAEDRE
CARTE DE VOEUX À L ASSOCIAEDRE JEAN-LOUIS LODAY Il y a cinq ans le Centre International de Rencontres Mathématiques de Luminy a envoyé ses voeux avec la carte ci-dessus. L illustration choisie par Robert
Plus en détailLES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010
LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010 Guillaume Informatique 10 rue Jean-Pierre Blachier 42150 La Ricamarie Tél. : 04 77 36 20 60 - Fax : 04 77 36 20 69 - Email : info@guillaume-informatique.com
Plus en détailEtude d Algorithmes Parallèles de Data Mining
REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR, DE LA TECHNOLOGIE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE DE TUNIS ELMANAR FACULTE DES SCIENCES DE TUNIS DEPARTEMENT DES SCIENCES DE L INFORMATIQUE
Plus en détailFONCTION DE DEMANDE : REVENU ET PRIX
FONCTION DE DEMANDE : REVENU ET PRIX 1. L effet d une variation du revenu. Les lois d Engel a. Conditions du raisonnement : prix et goûts inchangés, variation du revenu (statique comparative) b. Partie
Plus en détailNouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,
Plus en détailCours d Informatique
Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1
Plus en détailPropagation sur réseau statique et dynamique
Université de la Méditerranée UFR Sciences de Luminy Rapport de stage informatique pour le Master 2 de Physique, Parcours Physique Théorique et Mathématique, Physique des Particules et Astroparticules.
Plus en détailAdama MBODJI MBODJ.SYSTEM
MBODJ.SYSTEM Tableaux & vecteurs Algorithmes de tris Chaînes de caractères Listes linéaires Piles & Files Arbres Fichiers Je dédie cet ouvrage à mon père Souleymane MBODJI 2 Dédicace... 2 Sommaire... 3
Plus en détailSystèmes d Exploitation - ENSIN6U3. Aix-Marseille Université
Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté
Plus en détailNouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Julien Jorge, Xavier Gandibleux Laboratoire d Informatique de Nantes Atlantique
Plus en détailCREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com)
TABLE DES MATIERES I) Le logiciel JADE 2 II) Etablissements 3 1) Configuation de l établissement 3 2) Importation des classes avec SCONET 4 3) Les groupes d élèves 6 4) Les variables supplémentaires 6
Plus en détailChapitre 4 : Édition de fichiers texte - Vi
Édition de fichiers texte - Vi ÉNONCÉSDUCHAPITRE4 33 Chapitre 4 : Édition de fichiers texte - Vi X Durée : 1heure30 X Mots-clés : Éditeur, texte, vi, vim. X Objectif À l'issue de ce chapitre, vous serez
Plus en détailNOTE SUR LA MODELISATION DU RISQUE D INFLATION
NOTE SUR LA MODELISATION DU RISQUE D INFLATION 1/ RESUME DE L ANALYSE Cette étude a pour objectif de modéliser l écart entre deux indices d inflation afin d appréhender le risque à très long terme qui
Plus en détailDérivation : cours. Dérivation dans R
TS Dérivation dans R Dans tout le capitre, f désigne une fonction définie sur un intervalle I de R (non vide et non réduit à un élément) et à valeurs dans R. Petits rappels de première Téorème-définition
Plus en détailEntraînement au concours ACM-ICPC
Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détail1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information
TP Numéro 2 CRÉER ET MANIPULER DES TABLEAUX (Mise en forme, insertion, suppression, tri...) 1 CRÉER UN TABLEAU 1.1 Présentation Pour organiser et présenter des données sous forme d un tableau, Word propose
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plus en détailGestion de photos avec Picasa
Gestion de photos avec Picasa Gestion des photos 1. Importation : Une fois l appareil, carte mémoire ou clé USB branchée, il est possible d importer les photos en cliquant sur l onglet ``importer`` en
Plus en détailImage d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Plus en détailQUELQUES ACTIVITES RELATIVES A LA PARTIE A Propagation d une onde ; onde progressive. Comment installer le format de compression divx?
Lycée Bi h t QUELQUES ACTIVITES RELATIVES A LA PARTIE A Propagation d une onde ; onde progressive Il semble nécessaire d utiliser des fichiers images, de grande taille généralement, aussi, nous proposons
Plus en détailMABioVis. Bio-informatique et la
MABioVis Modèles et Algorithmes pour la Bio-informatique et la Visualisation Visite ENS Cachan 5 janvier 2011 MABioVis G GUY MELANÇON (PR UFR Maths Info / EPI GRAVITE) (là, maintenant) - MABioVis DAVID
Plus en détailM06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS
IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M06/5/COMSC/SP1/FRE/TZ0/XX 22067017 Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS
Plus en détailRecherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus Fansi @majirus
1 Recherche d Information(RI): Fondements et illustration avec Apache Lucene par Majirus Fansi @majirus Résumé Fondements de la Recherche d Information (RI) Noyau de toute application de RI Éléments à
Plus en détailTUTORIEL Qualit Eval. Introduction :
TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement
Plus en détailUNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL
UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 01/017 LICENCE DROIT MENTION DROIT GENERAL Les présentes règles s inscrivent dans le cadre réglementaire national défini par les tetes
Plus en détailTechniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
Plus en détailTraitement des données avec Microsoft EXCEL 2010
Traitement des données avec Microsoft EXCEL 2010 Vincent Jalby Septembre 2012 1 Saisie des données Les données collectées sont saisies dans une feuille Excel. Chaque ligne correspond à une observation
Plus en détail