Partie 1

fichiers nécessaires

Le but de cette première partie est d'implémenter l'algorithme de Burrows-Wheeler comme vu en cours.

Pour vous aider, la partie importante a déjà été écrite, et se trouve dans le fichier test.c. Les premières questions permettent de comprendre ce qui a été écrit.

Q1. Lancer le programme test.c. Expliquer ce que fait la fonction cmp. Complétez le code du programme pour qu'il affiche les permutations de la chaîne initiale de façon triée.
Q2. Modifier le code pour qu'il mette dans un fichier le résultat de l'algorithme de Burrows-Wheeler. Dans le cas de l'exemple il s'agit donc de mettre dans le fichier le mot mpehsoohmmroi
Q3. Modifier le programme pour qu'il prenne un nom de fichier en entrée, lise le contenu du fichier et le mette dans le tableau T DEUX FOIS, puis écrive le résultat de Burrows Wheeler dans un autre fichier.
Q4. Si vous n'avez pas fait le TP précédent (Partie 3), implémentez la méthode move to front.
Q5. Mettez tout ensemble pour obtenir un logiciel de compression qui, partant d'un fichier en entrée, renvoie un fichier en sortie obtenu en lui applicant (a) d'abord Burrows-Wheeler (b) puis move-to-front (c) puis le compresseur d'entropie (Partie 2 du TP précédent).
Q6. Félicitations, vous avez écrit votre premier compresseur performant. Vous pouvez lever les bras en signe de victoire puis passer à la suite.

Partie 2

Q0. Si ce n'est déjà fait, écrire le décodeur move to front (Q9 du TP précédent).

Q1. Implémentez l'algorithme de décodage de Burrows-Wheeler.

Q2. Félicitations, vous avez écrit un logiciel de compression/décompression complet. Vous pouvez lever les bras en signe de victoire et rentrer chez vous.