Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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
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
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
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.