La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Structures de données et complexité

Copies: 1
Structures de données et complexité LIFO – FILO – FIFO – etc…

Présentations similaires


Présentation au sujet: "Structures de données et complexité"— Transcription de la présentation:

1 Structures de données et complexité

2 Notions de Complexité

3 Notion d'algorithme Algorithme : ensemble d'actions de traitement l'information échanger, recevoir, ranger, compter… Agit sur des données initiales ("entrées") Produit des résultats ("sorties") Programmation d'un algorithme: Expression dans un langage de programmation Styles de programmation (itérative, récursive…)

4 Complexité d’un algorithme
Mesurer l’efficacité d’un algorithme Coût en nombre d’opérations: Fonction du nombre n de données (mots mémoire ou bits) à traiter Algorithme polynomial : O(n 2) , O(n 3), … opérations Parcours d’une matrice carrée n x n, produit de 2 matrices, ... Algorithme exponentiel : O(e n) Très lent en pratique Coût moyen : pas facile à calculer hypothèses probabilistes sur la répartition des données Complexité : coût maximal, pire des cas

5

6

7

8

9

10

11

12

13

14

15

16 Structures de données

17 A quoi ça sert ?!? Savoir ranger les données Tableaux limités
Agencer les données d’une certaine manière Ex: Processus physiques de type flux…

18 Les PILES - Stack (LIFO)
Last In – First Out Principe de la pile d’assiette

19 Opérations sur les piles
Empiler(e): ajouter e en haut de la pile Dépiler(): extraire l’élément au sommet Vide(): vider la pile EstVide(): teste si la pile est vide EstPleine(): teste si la pile est pleine

20 Exemple d’utilisation
Notation postfixée des expressions arithmétiques 2+5* *- Détermination de palindrome, etc…

21 Implémentation par tableau
Empile Dépile Empile

22

23

24 Les FILES (FIFO) First In – First Out Principe de la File d’attente

25 Opérations sur les files
Enfiler(e): ajouter e en haut de la file Défiler(): extraire l’élément en bas Vide(): vider la file EstVide(): teste si la file est vide EstPleine(): teste si la file est pleine

26 Exemple d’utilisation
File d’attente utilisateur ou processus Base de données Etc…

27 Implémentation par tableau
Enfile Défile Empile

28 Vision circulaire de la file
Test pour plein: Fin = Début Test pour vide: Comment faire ? Variable booléenne

29

30

31 Les Listes chaînées Inconvénients des précédents: nombres limités d’éléments Principe: le jeu de piste; pointeur vers l’élément suivant

32 Opérations sur les Listes
Ajoute(e): ajouter e au bout de la liste Récupère(n): extraire l’élément à la nième position Vide(): vider la liste EstVide(): teste si la liste est vide …etc…

33 Exemple d’utilisation
On peut implémenter des piles, files, tableaux et bien d’autres choses avec des listes.

34 Les Listes doublement chaînées
Inconvénients des listes simplement chaînées: un seul sens de parcours Principe: on rajoute un sens; pointeur vers l’élément suivant et l’élément précédent

35 Arbres Binaires Structures arborescentes Utilisations: Langage naturel
Algorithme de recherche Jeu, echecs

36 Possibilités pour le prochain cours
Théorie des graphes Sécurité informatique (Net & Réseaux) Base de donnée et + si temps libre Théorie de la complexité avancée Programmation objet Intelligence artificielle distribuée Intelligence artificielle « Logique » Vie Artificielle et Programmation génétique

37


Télécharger ppt "Structures de données et complexité"

Présentations similaires


Annonces Google