L3 Informatique ann´ee 2014-2015
M´ethodes Algorithmiques
Examen du 16 Juin 2015
Responsable : Sophie Pinchinat
Documents non autoris´es
Exercice 1 On consid`ere l’algorithme suivant :
Algorithm 1 XXX(A[1 . . . n] d’entiers, k entier, B[1 . . . n] d’entiers
Require: k=max1inA[i]
1: var C[0 . . . k] d’entiers
2: for i= 0 to kdo
3: C[i]0
4: end for
5: for j= 1 to longueur[A]do
6: C[A[j]] C[A[j]] + 1
7: end for
8: for i= 1 to kdo
9: C[i]C[i]+C[i1]
10: end for
11: for j= longueur[A]to 1do
12: B[C[A[j]] A[j]
13: C[A[j]] C[A[j]] 1
14: end for
1) Ex´ecuter l’Algorithme 1 pour les param`etres A= [2,5,3,0,2,3,0,3] et k= 5, selon les
trois ´etapes entre les lignes 5 7, 8 10, et 11 14, en ne faisant apparaˆıtre pour chacune
des ces trois ´etapes que la valeur des tableaux Cet B. etailler toutefois les deux premi`eres
it´erations de la boucle for de la ligne 11.
2) Quelle est la propri´et´e v´eri´ee apr`es l’ex´ecution des lignes 5 7 ?
3) Quelle est la propri´et´e v´eri´ee apr`es l’ex´ecution des lignes 8 10 ?
4) Que r´ealise l’Algorithme 1 ?
5) Quel serait l’eet de mettre for j= 1 to longueur[A]do `a la ligne 11 ?
1
Exercice 2 Un serveur dans un restaurant a nclients attendant d’ˆetre servis. Chaque client
a un num´ero icompris entre 1 et n, et le temps requis pour servir chaque client est connu `a
l’avance : le client irequiert un temps de service ti. Par exemple, si on d´ecide de servir les
clients dans l’ordre de leur num´ero, le temps d’attente Aidu client i(qui doit attendre que
tous les clients pr´ec´edents soient servis), v´erie les ´
Equations (1) et (2) suivantes :
Ai=Σi
j=1tj(1)
Ai=Ai1+ti(2)
On cherche `a minimiser le temps d’attente global A=Σn
i=1Ai.
1) Dans quel ordre vous paraˆıt-il judicieux de servir les clients ?
2) En vous servant des ´
Equations (1) et (2), montrez que cet ordre minimise A.
3) D´eduisez-en un algorithme pour r´esoudre ce probl`eme, ainsi que sa complexit´e.
Exercice 3 Vous disposez de trois algorithmes pour r´esoudre un probl`eme donn´e.
L’Algorithme ar´esoud le probl`eme (de taille n) en r´esolvant r´ecursivement 2 sous-
probl`emes de taille n1 et en recombinant les solutions en temps constant.
L’Algorithme br´esoud le probl`eme en le divisant en 5 sous-probl`emes de taille moiti´e
moindre, en r´esolvant ces sous-probl`emes r´ecursivement, et en recombinant les solutions
en temps lin´eaire.
L’Algorithme cr´esoud le probl`eme (de taille n) en le divisant en 9 sous-probl`emes
de taille n/3, en r´esolvant r´ecursivement chaque sous-probl`eme, et en recombinant les
solutions en temps O(n2).
1) On note Tx(n) le temps de calcul de l’Algorithme xsur une entr´ee de taille n, donnez
les ´equations qui ecrivent Tx(n) pour chaque x{a, b, c}.
2) Quel est asymptotiquement le temps d’ex´ecution de chaque algorithme ?
3) Bonus Lequel choisiriez-vous ?
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !