Université Bordeaux 1 Licence Informatique 2004/2005 Initiation à l’algorithmique DS 1 Durée : 1h30. Aucun document autorisé. Les algorithmes qu’on vous demandera d’écrire dans les exercices suivants doivent utiliser le langage EXALGO défini en cours. Exercice 1.1 Question de cours : Parmi les algorithmes de tri de tableaux par insertion, par sélection et à bulle indiquez ceux qui aprés une exécution partielle produisent un tableau partiellement trié. C’est à dire un tableau dans lequel une partie des données occupent déjà leur place définitive dans le tri. Justifiez. Exercice 1.2 Soit la structure date suivante : date = structure jour: entier; mois: entier; annee: entier; finStructure avec • 1 ≤ jour ≤ 31, • 1 ≤ mois ≤ 12. 1. Ecrivez une fonction d’en-tête estInférieure (val a : date, val b : date) : booléen retournant vrai si la date a est strictement antérieure à la date b, faux sinon. 2. En utilisant un algorithme de tri par sélection, écrivez une fonction d’en-tête tri (ref t : tableau[1..NB DATES] de dates) : vide qui trie le tableau passé en paramètre dans l’ordre croissant. 3. Soit la nouvelle structure suivante : personne = structure nom: cha^ ıne de caractères; jour: entier; mois: entier; annee: entier; finStructure Supposez qu’on veuille trier par dates croissantes un tableau de personnes dont les noms sont déjà triés. Ce même tri par sélection est-il approprié ? Justifiez. 1 Exercice 1.3 On souhaite trier un tableau T de n booléens de façon à ce que les valeurs fausses soient rangées au début du tableau. Par exemple si T = 0 1 1 0 0 ... 1 0 0 1 avec 0 = F AU X et 1 = V RAI Aprés l’application de l’algorithme de tri on aura T = 0 0 0 ... 0 1 ... 1 1 1 En cours d’algorithme une partie des données sont déjà triées et le tableau est organisé de la façon suivante : 1 i j n T = 0 0 0 ? ? ? ? 1 1 1 Les ”?” représentent les données non encore traitées. 1. Que représentent i et j ? 2. Selon la valeur de T [i] quel traitement doit-on effectuer ? 3. Quand doit-on arrêter l’algorithme ? 4. Ecrire l’algorithme de tri. 5. Quelle est sa complexité en temps ? 2