J'ai du mal à déterminer le temps d'exécution de chaque étape d'un algorithme. Je ne peux pas comprendre la logique. Nous connaissons tous avant de déterminer le Big O ou Thêta dans un algorithme, nous devons calculer le temps d'exécution de chaque étape, puis nous calculons l'ordre en fonction du temps d'exécution.Impossible de comprendre le temps d'exécution dans un algorithme
Je trouve plus facile de calculer la commande que le Big O ou le Theta, mais mon problème est de calculer le temps d'exécution.
Exemple:
for i=0 to **n**
dothisStep
Le temps d'exécution de la présente est la suivante: (n + 1) qui en fait un ordre de O (N) - ce qui est facile et je compris pourquoi-- mon problème est avec les "plus durs". Parfois, je suis censé obtenir n (n + 1)/2, parfois n (n + 1), mais je ne peux pas comprendre comment ou pourquoi! Quelles sont les règles?
Cette question/réponses peut vous aider: http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it/4852666#4852666 – Pierre
Cela signifie la même chose: " Grand O de N "==" ordre de N "==" O (N) ". Lorsque nous disons «de l'ordre de X» dans ce contexte, nous entendons par là que «X est le facteur dominant qui détermine la complexité de l'exécution: pour les grandes entrées, nous pouvons ignorer les autres facteurs». Vous pouvez voir cela signifie O (X). –