Introduction
Les algorithmes à base logarithmique désignent des algorithmes dont la complexité, c'est-à-dire le nombre d'opérations nécessaires pour résoudre un problème, croît de manière logarithmique par rapport à la taille de l'entrée. Autrement dit, si la taille de l'entrée est n, le temps d'exécution de l'algorithme est proportionnel à log n. Ces algorithmes sont souvent très efficaces, en particulier pour traiter de grandes quantités de données.
Caractéristiques principales
- Réduction rapide de l'espace de recherche : Les algorithmes à base logarithmique divisent généralement le problème en sous-problèmes plus petits, souvent par un facteur constant (par exemple, par 2). Cela permet de réduire rapidement la taille du problème à chaque étape.
- Efficacité et mise à l'échelle : Les algorithmes logarithmiques sont bien adaptés aux grandes tailles d'entrée, car la fonction logarithmique augmente très lentement. Par exemple, pour un problème de taille n=1000000, log2(n) est environ 20, ce qui représente un très faible nombre d'itérations.
- Fondation mathématique : Ces algorithmes s'appuient sur le concept de logarithme, mesurant combien de fois une quantité doit être multipliée par elle-même pour atteindre une valeur donnée. Cela permet des opérations itératives efficaces.
Exemples d'algorithmes à base logarithmique
- Recherche binaire : Permet de trouver un élément dans une liste triée en divisant l'espace de recherche par deux à chaque étape. Complexité : O(log n).
- Algorithmes de manipulation d'arbres équilibrés : Les opérations sur des arbres binaires équilibrés (insertion, recherche, suppression) ont une complexité O(log n). Exemple : AVL, arbres rouges-noirs.
- Tri par tas (Heap Sort) : Lors de la construction ou de l'extraction des éléments d'un tas, chaque opération a une complexité O(log n).
- Exponentiation rapide : Permet de calculer efficacement ab en divisant b par 2 à chaque étape. Complexité : O(log b).
- Algorithmes de recherche dans les bases de données : Les algorithmes d'indexation (comme les arbres B ou B+) dans les bases de données utilisent des recherches logarithmiques.
- Compression et cryptographie : Certains algorithmes de compression ou d'analyse cryptographique utilisent des structures de données logarithmiques pour optimiser leurs performances.
Propriétés des logarithmes dans ces algorithmes
- Le logarithme en base 2 (log 2) est le plus souvent utilisé, car les systèmes binaires dominent l'informatique.
- Les logarithmes dans d'autres bases (comme 10 ou e) peuvent être utilisés dans des contextes spécifiques, mais la constante de changement de base n'affecte pas la complexité asymptotique.
LOG
Le LOG permet d'indiquer la fonction logarithmique. Voici son algorithme :
MODULE LOG(x) negatif ← faux fois ← 1 ajout ← 0 SI x <= 0.0 ALORS RETOURNE 0 FIN SI SI x < 1.0 ALORS negatif ← vrai x ← 1.0 / x FIN SI BOUCLE FAIRE TANT QUE x >= 10.0 x ← x / 10.0 ajout ← ajout + 2.302585092994046 FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE x >= 1.1 x ← SQRT(x) fois ← fois x 2 FIN BOUCLE FAIRE TANT QUE x ← x - 1 savx ← x i ← 2 xp ← x x x quotient ← (xp / i) dl ← x - quotient BOUCLE FAIRE TANT QUE 1.0E-15 ← quotient i ← i + 1 xp ← xp x x dl ← dl + (xp / i) i ← i + 1 xp ← xp x x quotient ← (xp / i) dl ← dl - quotient FIN BOUCLE FAIRE TANT QUE dl ← dl x fois dl ← dl + ajout SI negatif ALORS dl ← -dl FIN SI RETOURNE dl |
Dernière mise à jour : Dimanche, le 12 mars 2006