Toutes mes excuses pour la question des débutants, mais je suis un peu confus quant à ce qui compte exactement comme une "opération simple" lorsque l'on élabore la complexité temporelle d'un algorithme. En particulier, pourquoi considérons-nous que toutes les opérations sont égales?
Assurément, la division de deux très grands nombres prend plus de temps que l'ajout d'un à un nombre (comme dans chaque itération d'une boucle for). La multiplication, par exemple, peut consister en un certain nombre de petits ajouts. Donc, au lieu de simplement les additionner, ne devrions-nous pas appliquer une sorte de poids à chaque opération en fonction du type d'opération (addition, multiplication, etc.) et de la taille des nombres impliqués?
Mon problème est qu'on me demande de prouver que la complexité de mon algorithme est (pour une fonction ) et je ne sais pas comment procéder de manière mathématiquement rigoureuse en raison du flou inhérent à la définition d'une «opération simple». Alors, comment pourrais-je m'y prendre?