• Aucun résultat trouvé

TD d’algorithmique avanc´ee TD 2 : r´ecursivit´e

N/A
N/A
Protected

Academic year: 2022

Partager "TD d’algorithmique avanc´ee TD 2 : r´ecursivit´e"

Copied!
2
0
0

Texte intégral

(1)

TD d’algorithmique avanc´ee TD 2 : r´ecursivit´e

Jean-Michel Dischler et Fr´ ed´ eric Vivien

Suite de Fibonacci

La suite de Fibonacci est d´efinie comme suit :

Fib(n) =

1 sin= 0

1 sin= 1

Fib(n−1) + Fib(n−2) sinon.

1. ´Ecrivez un algorithme r´ecursif calculant Fib(n).

2. Montrez que la complexit´e (en nombre d’additions) de cet algorithme est en Ω(2n2).

3. ´Ecrire un algorithme r´ecursif qui calcule, pourn >0, le couple (Fibonacci(n),Fibonacci(n−1)).

4. Utilisez l’algorithme pr´ec´edent pour ´ecrire un nouvel algorithme calculantFibonacci(n).

5. Qu’elle est la complexit´e (en nombre d’additions) de cet algorithme ?

Op´ erations ensemblistes

Dans cette partie on consid`ere des ensembles repr´esent´es par des tableaux, certains ensembles seront tri´es et d’autres pas.Toutes les solutions propos´ees doivent ˆetre r´ecursives.

1. Nous voulons un algorithme Appartenance(A, x) qui recherche si un ´el´ement x appartient `a l’en- sembleA. Sixappartient effectivement `a A, l’algorithme renverraVrai, etFauxsinon.

(a) Cas des ensembles non tri´es : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e en nombre de comparaisons ? (b) Cas des ensembles tri´es (dans l’ordre croissant) :

i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e en nombre de comparaisons ?

iii. Utilisez une recherche dichotomique pour am´eliorer votre algorithme.

iv. Quelle est la complexit´e de votre nouvel algorithme ?

2. Nous voulons maintenant un algorithmeUnion(A,B) qui nous renvoie l’union des deux ensembles qui lui sont pass´es en argument.

(a) Cas des ensembles non tri´es : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

(b) Cas des ensembles tri´es (dans l’ordre croissant) : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

3. Nous voulons maintenant un algorithmeIntersection(A,B) qui nous renvoie l’intersection des deux ensembles qui lui sont pass´es en argument.

(2)

(a) Cas des ensembles non tri´es : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

(b) Cas des ensembles tri´es (dans l’ordre croissant) : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

4. Nous voulons maintenant un algorithme Diff´erence(A, B) qui nous renvoie la diff´erence des deux ensembles qui lui sont pass´es en argument (La diff´erence de Aet deB, not´ee A\B est l’ensemble des

´

el´ements deA n’appartenant pas `aB).

(a) Cas des ensembles non tri´es : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

(b) Cas des ensembles tri´es (dans l’ordre croissant) : i. ´Ecrivez un tel algorithme.

ii. Quelle est sa complexit´e ?

Références

Documents relatifs

L'emploi du temps permet de connaître pour une date donnée, quels sont les cours à suivre, et pour chaque cours, l'heure de début et celle de n, ainsi que la salle.. Expliquer

[r]

R´ ecrivez votre algorithme de recherche du maximum sous la forme d’un tournoi (de tennis, de foot, de p´ etanque ou de tout autre sport)2. Il n’est pas n´ ecessaire de

L’algorithme Intersection est appel´ e longueur (B) fois, chacun de ces appels effectuant un appel ` a Recherche sur A, dont le coˆ ut au pire est en longueur(A)?. Quelle est

Donnez deux algorithmes « diviser pour r´ egner » permettant de multiplier deux polynˆ omes de degr´ e au plus n et s’ex´ ecutant en Θ(n log 2 3 ).. (a) Le premier algorithme

Nous supposons ´ egalement que la seule op´ eration ` a notre disposition nous permet de v´ erifier si deux ´ el´ ements sont ou non ´ egaux.. Proposez un algorithme

Le probl` eme est le mˆ eme que le pr´ ec´ edent, sauf qu’ici le voleur peut ne prendre qu’une fraction d’un objet et n’est plus oblig´ e de prendre l’objet tout entier

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