Complexité fine du diviser-pour-régner Les récurrences
Comment calculer la complexité d'un algorithme récursif ?
La complexité est donc T(n)=n0log2(n)=log2(n). donc a=2, b=2 et f(n)=Θ(1).
Dans ce cas logb(a)=log2(2)=1 et f(n)=Θ(n0).
Nous sommes dans le premier cas du Master Theorem où le coût des appels récursifs est prépondérant, et nous avons donc T(n)=Θ(n).
Comment diviser pour mieux régner ?
Le diviser pour régner est une méthode algorithmique basée sur le principe suivant : On prend un problème (généralement complexe à résoudre), on divise ce problème en une multitude de petits problèmes, l'idée étant que les "petits problèmes" seront plus simples à résoudre que le problème original.
Qui a dit il faut diviser pour mieux régner ?
La maxime divide et impera est attribuée à Philippe II de Macédoine.
- La complexité en temps d'un algorithme sera exprimé par une fonction, notée T (pour Time), qui dépend : de la taille des données passées en paramètres : plus ces données seront volumineuses, plus il faudra d'opérations élémentaires pour les traiter.
On notera n le nombre de données à traiter.
Démontrer, par récurrence sur la taille n = fin−deb+1 du tableau, l'effet Avec la partie 1 , on a pour partition un α telle que la "complexité" est αn Autres questions