0% ont trouvé ce document utile (0 vote)
448 vues1 page

TD-1 (Complexité, Récursivité) PDF

Transféré par

Rachid El Kedmiri
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
448 vues1 page

TD-1 (Complexité, Récursivité) PDF

Transféré par

Rachid El Kedmiri
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 1

D epartement dInformatique Facult e des Sciences, Universit e Ibn Zohr Agadir

Algorithmique et structures de donn ees TD1 - Complexit e, r ecursivit e, structures Fili` ere : SMI4 Exercice 1: Ecrire un algorithme (programme en langage C) it eratif donnant lindice de la premi` ere occurence dun el ement minimal dans un tableau de N entiers (on suppose N 2). Exemple : si la suite des el ement du tableau est 5,2,4,2,1,7,9,4,1,1, il y a 3 occurrences de l el ement minimal et lindice de sa premi` ere occurence est 5. Evaluer sa complexit e. Exercice 2: On appelle MiniMax dune matrice dentiers la valeur minimale des maximas de chaque ligne. Ecrire un algorithme qui retourne la valeur MiniMax dune matrice dentiers n m. On suppose N 1 et M 1. Evaluer sa complexit e. Exercice 3: 1. Donner une fonction r ecursive puissance(a,i) qui calcule ai . 2. Refaire la m eme fonction en utilisant lexponentiation rapide (voir cours). 3. Calculer la complexit e dans les deux cas (1 et 2). 4. Donner une fonction r ecursive somme(a,n) qui calcule
n i=0

ai .

5. Calculer la complexit e de lalgorithme pr ec edent (somme). Exercice 4: Dire ce que d enissent les fonctions suivantes, puis calculer leur complexit e, pour rec1 en nombre de multiplications par 2 et pour rec2 en nombre dadditions ; int rec1(int n) { if(n == 0) return 1; else return 2*rec1(n-1); } int rec2(int n) { if(n == 0) return 1; else return (rec2(n-1) + rec2(n-1)); }

Vous aimerez peut-être aussi