SlideShare une entreprise Scribd logo
1  sur  11
Il faut déterminer quelle mesure utiliser pour calculer ces deux
quantités.
•pour le temps : le nombre d'opérations effectuées et le
temps nécessaire pour chaque opération.
•pour la place : le nombre d'instructions et le nombre des
données du programme, avec le nombre de mots mémoire
nécessaires pour stocker chacune d'entre elles, ainsi que le
nombre de mots mémoire supplémentaires pour la
manipulation des données.
Pour la complexité en temps le plus important c'est le nombre
des opérations élémentaires, la notion de complexité devient
importante quand la taille des données devient très grande.
1
L'exécution d'un programme nécessite l'utilisation des
ressources de l'ordinateur : temps de calcul pour exécuter les
opérations, et l'occupation de la mémoire pour contenir et
manipuler le programme et ses données.
L'objet de l'analyse de la complexité est de quantifier les deux
grandeurs physiques "temps d'exécution" et "place mémoire",
dans le but de comparer entre eux différents algorithmes qui
résolvent le même problème.
2
Complexité constante O(1)
Algorithme 72 : somme_suite (n : entier):
entier
Donnée : entier n
Résultat : entier
Variable locale : entier som
début
som  n * (n+1) div 2
retourner som
fin
Le temps ne dépend pas de n.
3
Règle de calcul de complexité des
expressions
a)n3 + n2 + n3 *log2
n
n3 *log2
n domine d'où la complexité est O(n3
*log2
n)
b) n + 4n + 4n
4n domine, d'où la complexité est O(4n)
4
5
Complexité linéaire O(n)
Algorithme 73 : recherche_tableau (tab: tableau, n : entier, but:
T): booléen
Donnée : but de type T
Donnée : le tableau tab d’éléments de type T
Donnée : la taille n du tableau tab
Résultat : booléen
Variable locale : booléen trouve qui indique si la valeur a été
trouvé
Variable locale : entier i, indice du tableau
début
trouve  faux
i  1
TANT QUE non trouve et i<= n
SI tab[i] = but ALORS
trouve  vrai
SINON
i  i + 1
fin
fin
retourner trouve
Fin
Dans le pire des cas les opérations à l'intérieur de TANT QUE sont exécutées n fois.
6
Complexité logarithmique O(log n)
Recherche dichotomique dans un tableau trié
Algorithme 74 : recherche_tableau_dicho (tab:
tableau, n : entier, but: T): booléen
Donnée : but de type T
Donnée : le tableau tab d’éléments de type T
Donnée : la taille n du tableau tab
Résultat : booléen
Variable locale : booléen trouve qui indique
si la valeur a été trouvé
Variable locale : déb l’indice du premier
élément du sous-tableau traité
Variable locale : fin l’indice du dernier
élément du sous-tableau traité
Variable locale : milieu l’indice du milieu
du sous-tableau traité
début
trouve  faux
déb  1
fin  n
TANT QUE non trouve et déb <= fin FAIRE
milieu  (début + fin) div 2
SI but < tab[milieu] ALORS
fin  milieu – 1
SINON
SI but > tab[milieu] ALORS
début  milieu + 1
SINON
trouve  vrai
fin
fin
fin
retourner trouve
fin 7
Ex. tab = (10, 12, 13, 15, 16, 19, 21, 25, 31)
but = 15
1. milieu = 5
tab[5]= 16>15
2. fin = 4
milieu = 2
tab[2] = 12 < 15
3. début = 3
milieu = 3
tab[3] = 13 <15
4. début = 4
milieu = 4
tab[4]=15
8
but = 24
1. milieu = 5
tab[5]= 16<24
2. début = 6
milieu = 7
tab[7] = 21<24
3. début = 8
milieu = 8
tab[8] = 25 >24
4. fin = 7  fin < début
9
Complexité polynomiale
quadratique O(n2)
Tri à bulles
Algorithme 75 : tri_a_bulles (tab: tableau,
n : entier): booléen
Donnée : taille du tableau n
Donnée modifiée : tableau tab d’éléments de
type T
Variable locale : booléen ech qui indique si
un échange a eu lieu
Variable locale : i indice dans le tableu
Variable locale : k compteur des parcours
Variable locale : tmp de type T permettant
de faire un échange
10
début
ech  vrai
k  -1
TANT QUE k < n et ech FAIRE
k  k + 1
ech  faux
POUR i = 1 à n – k – 1 FAIRE
SI tab[i] < tab[i + 1]
temp  tab[i]
tab[i]  tab[i+1]
tab[i+1]  temp
ech  vrai
fin
fin
fin
11

Contenu connexe

Similaire à Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Aziz Darouichi
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZHDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZDocPadraigCharafeddi
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CAbdelouahed Abdou
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
mis
mismis
misISIG
 

Similaire à Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx (20)

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
coursAlgo_V5.pdf
coursAlgo_V5.pdfcoursAlgo_V5.pdf
coursAlgo_V5.pdf
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Cours04.pdf
Cours04.pdfCours04.pdf
Cours04.pdf
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Chapitre3 tableauxcpp
Chapitre3 tableauxcppChapitre3 tableauxcpp
Chapitre3 tableauxcpp
 
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZHDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
mis
mismis
mis
 

Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx

  • 1. Il faut déterminer quelle mesure utiliser pour calculer ces deux quantités. •pour le temps : le nombre d'opérations effectuées et le temps nécessaire pour chaque opération. •pour la place : le nombre d'instructions et le nombre des données du programme, avec le nombre de mots mémoire nécessaires pour stocker chacune d'entre elles, ainsi que le nombre de mots mémoire supplémentaires pour la manipulation des données. Pour la complexité en temps le plus important c'est le nombre des opérations élémentaires, la notion de complexité devient importante quand la taille des données devient très grande. 1
  • 2. L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la mémoire pour contenir et manipuler le programme et ses données. L'objet de l'analyse de la complexité est de quantifier les deux grandeurs physiques "temps d'exécution" et "place mémoire", dans le but de comparer entre eux différents algorithmes qui résolvent le même problème. 2
  • 3. Complexité constante O(1) Algorithme 72 : somme_suite (n : entier): entier Donnée : entier n Résultat : entier Variable locale : entier som début som  n * (n+1) div 2 retourner som fin Le temps ne dépend pas de n. 3
  • 4. Règle de calcul de complexité des expressions a)n3 + n2 + n3 *log2 n n3 *log2 n domine d'où la complexité est O(n3 *log2 n) b) n + 4n + 4n 4n domine, d'où la complexité est O(4n) 4
  • 5. 5 Complexité linéaire O(n) Algorithme 73 : recherche_tableau (tab: tableau, n : entier, but: T): booléen Donnée : but de type T Donnée : le tableau tab d’éléments de type T Donnée : la taille n du tableau tab Résultat : booléen Variable locale : booléen trouve qui indique si la valeur a été trouvé Variable locale : entier i, indice du tableau début trouve  faux i  1 TANT QUE non trouve et i<= n SI tab[i] = but ALORS trouve  vrai SINON i  i + 1 fin fin retourner trouve Fin Dans le pire des cas les opérations à l'intérieur de TANT QUE sont exécutées n fois.
  • 6. 6 Complexité logarithmique O(log n) Recherche dichotomique dans un tableau trié Algorithme 74 : recherche_tableau_dicho (tab: tableau, n : entier, but: T): booléen Donnée : but de type T Donnée : le tableau tab d’éléments de type T Donnée : la taille n du tableau tab Résultat : booléen Variable locale : booléen trouve qui indique si la valeur a été trouvé Variable locale : déb l’indice du premier élément du sous-tableau traité Variable locale : fin l’indice du dernier élément du sous-tableau traité Variable locale : milieu l’indice du milieu du sous-tableau traité
  • 7. début trouve  faux déb  1 fin  n TANT QUE non trouve et déb <= fin FAIRE milieu  (début + fin) div 2 SI but < tab[milieu] ALORS fin  milieu – 1 SINON SI but > tab[milieu] ALORS début  milieu + 1 SINON trouve  vrai fin fin fin retourner trouve fin 7
  • 8. Ex. tab = (10, 12, 13, 15, 16, 19, 21, 25, 31) but = 15 1. milieu = 5 tab[5]= 16>15 2. fin = 4 milieu = 2 tab[2] = 12 < 15 3. début = 3 milieu = 3 tab[3] = 13 <15 4. début = 4 milieu = 4 tab[4]=15 8
  • 9. but = 24 1. milieu = 5 tab[5]= 16<24 2. début = 6 milieu = 7 tab[7] = 21<24 3. début = 8 milieu = 8 tab[8] = 25 >24 4. fin = 7  fin < début 9
  • 10. Complexité polynomiale quadratique O(n2) Tri à bulles Algorithme 75 : tri_a_bulles (tab: tableau, n : entier): booléen Donnée : taille du tableau n Donnée modifiée : tableau tab d’éléments de type T Variable locale : booléen ech qui indique si un échange a eu lieu Variable locale : i indice dans le tableu Variable locale : k compteur des parcours Variable locale : tmp de type T permettant de faire un échange 10
  • 11. début ech  vrai k  -1 TANT QUE k < n et ech FAIRE k  k + 1 ech  faux POUR i = 1 à n – k – 1 FAIRE SI tab[i] < tab[i + 1] temp  tab[i] tab[i]  tab[i+1] tab[i+1]  temp ech  vrai fin fin fin 11