structures de données et complexité. notions de complexité

of 37/37
Structures de données et complexité

Post on 03-Apr-2015

107 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • Structures de donnes et complexit
  • Page 2
  • Notions de Complexit
  • Page 3
  • Notion d'algorithme Algorithme : ensemble d'actions de traitement l'information changer, recevoir, ranger, compter Agit sur des donnes initiales ("entres") Produit des rsultats ("sorties") Programmation d'un algorithme: Expression dans un langage de programmation Styles de programmation (itrative, rcursive)
  • Page 4
  • Complexit dun algorithme Mesurer lefficacit dun algorithme Cot en nombre doprations: Fonction du nombre n de donnes (mots mmoire ou bits) traiter Algorithme polynomial : O(n 2 ), O(n 3 ), oprations Parcours dune matrice carre n x n, produit de 2 matrices,... Algorithme exponentiel : O(e n ) Trs lent en pratique Cot moyen : pas facile calculer hypothses probabilistes sur la rpartition des donnes Complexit : cot maximal, pire des cas
  • Page 5
  • Page 6
  • Page 7
  • Page 8
  • Page 9
  • Page 10
  • Page 11
  • Page 12
  • Page 13
  • Page 14
  • Page 15
  • Page 16
  • Structures de donnes
  • Page 17
  • A quoi a sert ?!? Savoir ranger les donnes Tableaux limits Agencer les donnes dune certaine manire Ex: Processus physiques de type flux
  • Page 18
  • Les PILES - Stack (LIFO) Last In First Out Principe de la pile dassiette
  • Page 19
  • Oprations sur les piles Empiler(e): ajouter e en haut de la pile Dpiler(): extraire llment au sommet Vide(): vider la pile EstVide(): teste si la pile est vide EstPleine(): teste si la pile est pleine
  • Page 20
  • Exemple dutilisation Notation postfixe des expressions arithmtiques 2+5*6 256*- Dtermination de palindrome, etc
  • Page 21
  • Implmentation par tableau Empile Dpile
  • Page 22
  • Page 23
  • Page 24
  • Les FILES (FIFO) First In First Out Principe de la File dattente
  • Page 25
  • Oprations sur les files Enfiler(e): ajouter e en haut de la file Dfiler(): extraire llment en bas Vide(): vider la file EstVide(): teste si la file est vide EstPleine(): teste si la file est pleine
  • Page 26
  • Exemple dutilisation File dattente utilisateur ou processus Base de donnes Etc
  • Page 27
  • Implmentation par tableau Enfile Empile Dfile
  • Page 28
  • Vision circulaire de la file Test pour plein: Fin = Dbut Test pour vide: Fin = Dbut Comment faire ? Variable boolenne
  • Page 29
  • Page 30
  • Page 31
  • Les Listes chanes Inconvnients des prcdents: nombres limits dlments Principe: le jeu de piste; pointeur vers llment suivant
  • Page 32
  • Oprations sur les Listes Ajoute(e): ajouter e au bout de la liste Rcupre(n): extraire llment la n ime position Vide(): vider la liste EstVide(): teste si la liste est vide etc
  • Page 33
  • Exemple dutilisation On peut implmenter des piles, files, tableaux et bien dautres choses avec des listes.
  • Page 34
  • Les Listes doublement chanes Inconvnients des listes simplement chanes: un seul sens de parcours Principe: on rajoute un sens; pointeur vers llment suivant et llment prcdent
  • Page 35
  • Arbres Binaires Structures arborescentes Utilisations: Langage naturel Algorithme de recherche Jeu, echecs
  • Page 36
  • Possibilits pour le prochain cours Thorie des graphes Scurit informatique (Net & Rseaux) Base de donne et + si temps libre Thorie de la complexit avance Programmation objet Intelligence artificielle distribue Intelligence artificielle Logique Vie Artificielle et Programmation gntique
  • Page 37