• Aucun résultat trouvé

BCPST Complexit´es d’algorithmes 2020-2021

N/A
N/A
Protected

Academic year: 2022

Partager "BCPST Complexit´es d’algorithmes 2020-2021"

Copied!
2
0
0

Texte intégral

(1)

BCPST Complexit´es d’algorithmes 2020-2021 Les exercices se feront sur papier, on ne programmera que le dernier lors- qu’il sera ´ecrit sur papier.

Exercice 1 :

Analyser les complexit´es des algorithmes d’op´erations sur les matrices. (on supposera que toutes les matrices sont carr´ees de tailles n×n).

Exercice 2 :

Dans cet exercice, L d´esigne une liste tri´ee de nombres eta un nombre.

(1) a. ´Ecrire la fonction chercher qui prend en arguments une listeLet un ´el´ement a et renvoie un indicei tel queL[i] =a (on utilisera un algorithme na¨ıf). Si l’´el´ement n’est pas dans la liste, la fonction renvoie −1.

b. Analyser la complexit´e de cet algorithme.

(2) a. ´Ecrire une fonction chercher rapide qui utilisera un algorithme plus rapide (on pensera `a la dichotomie et on utilisera la propri´et´e que la liste est tri´ee).

b. Analyser la complexit´e de celui-ci (on consid`erera une liste de taille une puissance de 2 : len(L) = 2k)

Exercice 3 :

On se donne l’algorithme suivant : def f o n c t i o n ( x , n ) :

L = [ ]

f o r i in range( n ) : L . append ( x ∗∗ i ) return L

(1) Expliquer ce que fait cet algorithme.

(2) Quelle est la complexit´e de celui-ci ?

(3) Donner une fonction qui construira la mˆeme liste avec une complexit´e de l’ordre de n op´erations.

(4) Modifier cet algorithme pour qu’il renvoie seulement x ∗∗ n.

(5) Existe-t-il un algorithme permettant de renvoyer le mˆeme ´el´ement plus rapide- ment ?

(2)

BCPST Complexit´es d’algorithmes, Page 2 sur 2 2020-2021 Exercice 4 :

Un probl`eme classique en informatique consiste `a rechercher, non pas une seule valeur, mais une s´equence de valeurs dans un tableau. Cela revient `a chercher une occurrence d’un tableau dans un autre ou, pour les chaˆınes de caract`eres, une occurrence d’un mot dans un texte.

On souhaite ´ecrire une fonction recherche mot qui, ´etant donn´es deux tableaux m et t, d´etermine la position de la premi`ere occurrence de m dans t, si elle existe, et renvoie non sinon. Ainsi, pour les tableaux m=[1,2,3] et t =[2,1,4,1,2,6,1,2,3,7] , recherche mot renvoie 6 :

[2, 1, 4, 1, 2, 6, 1, 2, 3, 7].

(1) a. ´Ecrire (d’abord sur papier) la fonction le mot est ici qui prend en pa- ram`etre une liste t, une liste m et un entier i et renvoie True si le mot m est `a la position i dans t et False sinon.

b. Coder sur le fichier python et v´erifier que les assert passent.

c. Analyser la complexit´e de cette fonction.

(2) a. En d´eduire la fonction (d’abord sur papier) chercher mot qui r´epond `a la question.

b. Analyser la complexit´e de cet algorithme.

(3) ´Evaluer le temps d’ex´ecution de cet algorithme avec diff´erentes listes. Est-ce coh´erent avec la complexit´e th´eorique ?

Références

Documents relatifs

Le théorème de comparaison à une intégrale permet d’exploiter classiquement la convergence d’une certaine série.. Elle y est continue comme inverse d’une fonction continue sur

Lorsqu’une base de données est très volumineuse et non ordonnée, trouver une information dans cette base est très long et très ingrat.. En effet la seule solution est

(2) En d´ eduire la fonction supprime qui prend en arguments une liste L et un nombre n et supprime le premier ´ el´ ement de la liste ´ egal ` a n.. Cette fonction retournera True

Pour faire l’analogie avec l’exemple du jeu de cartes, lorsqu’on est ` a la i-` eme ´ etape du parcours, le i-` eme ´ el´ ement est la carte saisie, les ´ el´ ements pr´

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

3) Combiner : les deux sous-listes triées sont alors combinées de sorte à ce que la liste résultat soit triée... Il nécéssite de l’ordre de n log(n) comparaisons/affectations

On pousse tous les bits d'un cran (ou de plusieurs si on remplace 1 par n) vers la droite (on perd donc des données de ce côté), on complète par des zéros sur la gauche. On obtient