Source: https://efreidoc.fr/L3/Optimisation & Complexité/Cours/2006-07.cours.chapitre1.opti.pdf