Ce document présente les principaux paradigmes de programmation, notamment la méthode 'diviser pour régner', les algorithmes gloutons, et la programmation dynamique. Il décrit des techniques et des algorithmes spécifiques tels que le tri par fusion et l'exponentiation rapide, ainsi que leur analyse de complexité. Les approches discutées visent à optimiser le temps d'exécution des algorithmes en décomposant des problèmes complexes en sous-problèmes plus simples.