Algorithmique en licence Mathématiques-Informatique en 2002/2003
- Cours n° 1 : introduction à l'algorithmique
- Notion d'algorithme
- modélisation mathématique et méthode abstraite de résolution
- structures de données abstraites et algorithme générique
- implémentation dans un langage
- Preuve de programmes
- Complexité d'algorithmes
- en espace et en temps
- dans le cas le pire et en moyenne
- Exemple du tri à bulles
- Cours n° 2 : listes, piles et files
- Listes
- listes simplement chaînées et doublement chaînées
- implémentation des opérations de base : ajout et suppression
d'un élément
- Piles et files
- opérations élémentaires : interface Java
- implémentation par tableaux et par listes
- Une implémentation
simpliste des listes, piles et files.
- Cours n° 3 : arbres
- Introduction
- définition
- terminologie : racine, noeud, noeud interne, feuille,
père, fils, hauteur, branche, sous-arbre
- définition récursive des arbres
- implémentations
- arbres binaires et binarisation d'un arbre quelconque
- Parcours
- définition des parcours en largeur, préfixe, infixe et suffixe
- liens entre le parcours global de l'arbre et les parcours
préfixe, infixe et suffixe
- implémentation avec une file du parcours en largeur
- Cours n° 4 : arbres (suite)
- Cours n° 5 :
arbres binaires de recherches
- Définition d'un arbre binaire de recherche
- Recherche d'un élément dans un arbre de binaire de recherche
- de manière récursive
- de manière itérative
- Insertion d'un élément
- Recherche du successeur d'un élément
- Suppression d'un élément
- Cours n° 6 :
arbres rouges et noirs
- Définition
- Hauteur d'un arbre rouge et noir
- Rotations
- Insertion d'un élément
- Suppression d'un élément
- Cours n° 7 :
recherche d'un motif dans un texte
- Algorithme naïf
- Algorithme de Morris et Pratt
- Algorithme de Knuth, Morris et Pratt
- Cours n° 8 : recherche de motifs dans un texte
- Algorithme de Boyer et Moore
- Algorithme de Aho et Corasick
- Cours n° 9 : graphes
- Définitions et terminologie
- graphes orientés ou non
- chemin, cycle
- Représentations
- représentation par matrice d'adjacence
- représentation par liste d'adjacence
- Parcours en largeur
- Cours n° 10 : parcours en profondeur dans un graphe
- Parcours en profondeur
- Détection des cycles
- Calcul des composantes fortement connexes