Question 4
On tente une nouvelle proc´edure pour trier un tableau de nmots. Donner un
algorithme qui permute ce tableau de telle sorte que tous les mots commen¸cant
par la lettre ase retrouvent plac´es en tˆete (mais pas forc´ement dans l’ordre),
suivis par tous les mots commen¸cant par b, puis tous les mots commen¸cant
par c. . . L’algorithme doit avoir une complexit´e en temps lin´eaire en net doit
travailler en place.
Question 5
En r´ep´etant le principe de l’algorithme de la question pr´ec´edente, proposer
un algorithme pour trier un tableau de mots. Quelle est sa complexit´e en temps
et en espace ?
Discuter l’efficacit´e de cet algorithme en comparasion avec celui de la ques-
tion 2.
Peut-on utiliser cet algorithme pour trier un tableau d’entiers machine cod´es
chacun sur 32 bits ? Qu’en pensez-vous ?
Deuxi`eme partie
Question 6
On consid`ere une matrice `a mlignes et ncolonnes `a coefficients entiers. Le jeu
consiste `a se d´eplacer depuis la case en haut `a gauche vers la case en bas `a droite.
`
A chaque pas, on ne peut aller que vers la droite ou vers le bas. `
A l’arriv´ee, on
remporte un nombre de points ´egal `a la somme des coefficients des cases visit´ees,
plus un point par changement de direction. Proposer un algorithme efficace pour
calculer le meilleur chemin et le nombre de points qu’il rapporte.
Question 7
On s’attend `a ce qu’une case change de valeur. On souhaite quand mˆeme
faire le calcul avec les valeurs initiales, mais pouvoir recalculer rapidement le
nombre de points apr`es la modification. Proposer
— une adaptation de l’algorithme pr´ec´edent pour qu’il conserve des infor-
mations utiles, et
— un algorithme qui prend en entr´ee la matrice initiale, les coordonn´ees de
la case modifi´ee, sa nouvelle valeur et les informations conserv´ees apr`es
le premier calcul, et recalcule le nombre de points en temps O(d2) si la
case modifi´ee est `a moins de dpas du d´epart ou de l’arriv´ee.
Question 8
On souhaite faire un voyage en voiture. Le r´eservoir plein nous permet de
parcourir exactement nkilom`etres. Les stations-service sur la route se trouvent
aux positions a1, a2, . . . , ak, avec 0 ≤ai+1 −ai≤net a1= 0. Montrer comment
minimiser le nombre d’arrˆets. D´emontrer la correction de votre algorithme.
2