http://www.lif.univ-mrs.fr/~vpoupet
e-mail: victor.poupet [at] lif.univ-mrs.fr

Enseignement : Algorithmique et structures de données (1er semestre 2011 - 2012)

Pour information : Les corrigés des examens des années précédentes sont disponibles (la correction des exercices est directement sur le sujet).

Important : Le sujet du devoir à la maison est enfin disponible... La date pour laquelle le devoir est à rendre n'est pas encore totalement fixée mais ce sera un peu après la date de l'examen (donc en janvier).

Pour installer Python chez vous, suivez les instructions sur cette page. Si vous avez des questions, posez-les en cours ou par mail.

Caractéristiques du cours :

Les séances de TP et TD sont encadrées par Martin Delacourt, Viet Phan Luong et moi-même.

Crystal and Ice - inner-space

Devoir à la maison

Sujet [pdf]

Implémentation d'ensembles à l'aide de skip-lists.

Fichier annexe contenant des fonctions Python à utiliser [py]

Remarques :

Travaux dirigés

TD n° 1 [pdf]

Quelques algorithmes simples : évaluation d'une écriture binaire, décompte des lettres d'une chaîne, palindromes et tri rapide.

TD n° 2 [pdf]

Un peu de tri sur les tableaux d'entiers (tri bulle et quick sort).

TD n° 3 [pdf]

Quelques algorithmes récursifs : tri fusion et renversement d'une liste de manière efficace.

TD n° 4 [pdf]

Des fonctions récursives sur les listes.

TD n° 5 et 6 [pdf][corrigé]

Corrigé du partiel de l'année 2009. Des fonctions récursives, et des listes pointées (représentées par des listes chaînées, des piles et des tableaux).

TD n° 7 [pdf]

Complexité des tableaux dynamiques par analyse amortie.

TD n° 8 [pdf]

Tables de hachage, résolution des collisions par sondages linéaire, quadratique et par double hachage.

TD n° 9 [pdf]

Arbres binaires équilibrés et rotations.

Travaux pratiques

TP n° 1 [pdf]

Manipulations de tableaux en Python : recherche de l'élément minimal et maximal, tri naïf par permutations et tri fusion. Mesure du nombre de comparaisons effectuées par chaque algorithme.

TP n° 2 [pdf]

Représentation des graphes par leur matrice d'adjacence ou liste d'adjacence. Fonctions simples les manipulant.

TP n° 3 [pdf]

Graphes pondérés. Fonctions simples et calcul du plus court chemin entre deux sommets en temps polynomial.

TP n° 4 et 5 [pdf]

Plein de fonctions sur les listes chaînées.

TP n° 6 [pdf][test]

Les fonctions récursives du partiel 2010 et des manipulations de polynômes représentés par des listes.

TP n° 7 [pdf][py]

Substitution de Fibonacci et tours de Hanoï.

TP n° 8 [pdf]

Les dictionnaires en Python (tables de hachage), un exemple de fonction de hachage mal choisie et le paradoxe des anniversaires.

TP n° 9 [pdf]

Fonctions élémentaires sur les arbres binaires.

Partiels et examens

Partiel de l'année 2009 [pdf]

Exercice 1 : des fonctions récursives sur les listes.
Exercice 2 : représentation des listes pointées (listes dans lesquels un curseur de lecture se déplace en avant ou en arrière) par différentes structures de données.

Examen de l'année 2009 (corrigé) [pdf]

Exercice 1 : des fonctions récursives sur les listes.
Exercice 2 : représentation des listes circulaires (le successeur du dernier élément est le premier élément).

Partiel de l'année 2010 [pdf]

Exercice 1 : des fonctions récursives sur les listes
Exercice 2 : différentes structures de données pour représenter des ensembles dans lesquels on peut efficacement insérer un nouvel élément et chercher si un élément est présent.

Examen de l'année 2010 (corrigé) [pdf]

Exercice 1 : des fonctions récursives sur les listes et les arbres binaires.
Exercice 2 : retournement d'une liste par une fonction récursive efficace.
Exercice 3 : représentation des expressions arithmétiques par des arbres binaires.
Exercice 4 : Codage d'un dictionnaire par des arbres ternaires.

Valid XHTML 1.0 Transitional Valid CSS! Valid Konami!