Structures de données et complexité

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

Parcours.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 5 Structures de données abstraites.
Introduction: Concepts de la programmation
Piles, files et listes: notions théoriques
Algorithmes et structures de données
Algorithmes et structures de données avancées Cours 1+2+3
Structures de données et complexité LIFO – FILO – FIFO – etc…
Sensibilisation à l’Algorithmique
Au programme du jour …. Un peu plus de structures de données
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Séminaire Florin Périer Alain Gély LIMOS
Les structures de données
Système d’exploitation : Assembleur
Algorithmique et Structures de données
Initiation à la programmation et algorithmique cours 3
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
UE NFA006 STRUCTURES DE DONNEES
Structures de données linéaires
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
Récursivité.
Cours d’Algorithmique
Les piles Djamal Rebaïne.
Les structures de données arborescentes
ALGORITHMIQUE Plan du cours Généralités -définition -importance
II. Chaînage, SDD séquentielles
Methode de Tri efficace
II. Chaînage, SDD séquentielles
Standard Template Library (STL)
Structures de données IFT-2000
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Etude de cas : buffer clavier
IFT-10541A : Hiver 2003 Semaine 5 : Piles et files.
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Présentation Structures de Données et TDA

Standard Template Library
Les Algorithmes de Tri Introduction Tri par Sélection
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-10541
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Ch. PAUL - Piles et Files à l'aide de listes chainées
Cours Architecture des Systèmes Informatiques
LES PILES ET FILES.
Arbres binaires et tables de hachage
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
II. Chaînage, SDD séquentielles
ETNA – 1ème année Guillaume Belmas –
LE TRAITEMENT NUMERIQUE
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Programmation Orienté Objet en C++
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Types abstraits de données (TAD)
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.
Présentation Structure données abstraite (TDA) Rappel : File
Structure de données Les listes.
Transcription de la présentation:

Structures de données et complexité

Notions de Complexité

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…)

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

Structures de données

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…

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

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

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

Implémentation par tableau Empile Dépile Empile

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

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

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

Implémentation par tableau Enfile Défile Empile

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

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

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…

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

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

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

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