• Aucun résultat trouvé

R´ ecursivit´ e et complexit´ e

N/A
N/A
Protected

Academic year: 2022

Partager "R´ ecursivit´ e et complexit´ e"

Copied!
2
0
0

Texte intégral

(1)

Travaux Dirig´ es d’algorithmique n

o

3

Cours d’informatique de Deuxi`eme Ann´ee

—L2.1—

R´ ecursivit´ e et complexit´ e

Suite des exercices sur la r´ecursivit´e et notion de complexit´e en temps et en place.

xExercice 1. Recherche dichotomique

On rappelle que l’id´ee de la recherche par dichotomie d’un ´el´ement x dans un tableau tri´e pour l’ordre croissant est la suivante :

on comparex avec l’´el´ementm du milieu du tableau, - six=m: on a trouv´e une solution ;

- si x < m : x ne peut pas se trouver apr`es m dans le tableau ; il suffit alors de le rechercher dans la partie `a gauche de m;

- si x > m : x ne peut pas se trouver avant m dans le tableau ; il suffit alors de le rechercher dans la partie `a droite de m;

Quand peut-on conclure quex n’est pas pr´esent dans le tableau ? Donner une fonction r´ecursive qui traduit cet algorithme.

xExercice 2. Monnayeur

Probl`eme : ´etant donn´ee une suite d’entiers strictement croissante P0 = 1, P1, . . . , PN−1 et un entier strictement positif S, d´eterminer un ensemble d’entiers positifs {a0, a1, . . . , aN−1} tels quePN−1

i=0 aiPi =S avecPN−1

i=0 ai minimale. Il y a toujours une solution puisqueP0= 1.

On dispose d’un tableau piece[N]contenant les entiers Pi en ordre croissant.

1. ´Ecrire une fonction int Glouton(int s, int valeur[])qui r´ealise la somme savec les entiers du tableau valeur, sans se pr´eoccuper de la condition de minimalit´e, en commen¸cant syst´ematiquement par utiliser les plus grandes valeurs.

L’exemple piece= 1 5 6 etS = 10permet de se convaincre que la m´ethode n’est pas optimale.

2. ´Ecrire une fonctionint Monnaie(int s, int valeur[],int indiceMax)r´ealisant le minimum. Pour cela elle compare le nombres de pi`eces obtenu en utilisant les valeurs jusqu’`a l’indiceMax avec le nombre de pi`eces obtenus en utilisant les valeurs jusqu’`a l’indiceMax -1.

xExercice 3. Complexit´e en temps et en place

Reprendre les exercices des TD 2 et 3 en donnant leur complexit´e en temps et en place.

1

(2)

xExercice 4. Nombre d’instructions

On suppose qu’un ordinateur effectuant 10 milliard d’instructions ´el´ementaires par seconde fonctionne depuis 10 milliards d’ann´ees.

Combien d’instructions ´el´ementaires a-t-il effectu´e pendant cette p´eriode.

D´eterminer le nombre de d´eplacement n´ecessaire pour r´esoudre le probl`eme des tours de Hano¨ı avec ndisques.

En supposant que le d´eplacement d’un plateau soit une instruction ´el´ementaire, quelle valeur de npeut traiter l’ordinateur pr´ec´edent en 10 milliards d’ann´ees.

2

Références

Documents relatifs

Montrez qu’un algorithme donn´ e it´ eratif/r´ ecursif est correct (pour des algorithmes simples, du type de ceux vus aux r´ ep´ etitions).. Expliquez le principe d’une preuve

Ecrire le d´ ´ efinition d’une fonction r´ ecursive qui renvoie vrai/f aux selon qu’une valeur donn´ ee se trouve ou non dans un tableau

On admettra comme op´eration ´el´ementaire une op´eration arithm´etique, une affectation, une comparaison (´evaluation d’une expression bool´eenne), l’affichage d’un

admettra comme op´eration ´el´ementaire une op´eration arithm´etique, une affectation, une comparaison (´evaluation d’une expression bool´eenne), l’affichage d’un

Par dichotomie successive, on voit que si l’on sait r ´esoudre ce probl `eme en Υ(log(n)) op ´erations ´el ´ementaires , on sait trouver un diviseur de n en temps polyn ˆomial.

On pensera ` a appeler le professeur pour faire valider la m´ ethode, sinon les points ne seront pas accord´ es.. D´ eterminer une dur´ ee possible de l’attraction arrondies ` a

En d´eduire une fonction qui teste si deux tableaux d’entiers contiennent les mˆemes ´el´elments, sans tenir compte de l’ordre dans lequel les ´el´ements

En d´eduire une fonction qui teste si deux tableaux d’entiers contiennent les mˆemes ´el´elments, sans tenir compte de l’ordre dans lequel les ´el´ements