J'ai de la difficulté à analyser mon algorithme. J'ai l'impression d'être en train d'identifier des algorithmes linéaires ou carrés mais je suis totalement perdu avec les algorithmes nlogn ou logn, ceux-ci semblent provenir principalement des boucles while. Voici un exemple que je cherchais à:analyse Big Oh notation pseudocode
Algorithm Calculate(A,n)
Input: Array A of size n
t←0
for i←0 to n-1 do
if A[i] is an odd number then
Q.enqueue(A[i])
else
while Q is not empty do
t←t+Q.dequeue()
while Q is not empty do
t←t+Q.dequeue()
return t
Ma meilleure estimation est la boucle est exécutée n fois, son emboîtés alors que les temps boucle q faire NQ et la finale en boucle aussi Q fois résultant en O (NQ + Q) qui est linéaire?
Comment la file d'attente est-elle implémentée? – yassin
J'imagine que si cela n'est pas spécifié, les opérations de file d'attente (enqueue et dequeue) peuvent être supposées s'exécuter dans 'O (1)'. – FrustratedWithFormsDesigner
Salut, ce n'est pas spécifié dans le problème, j'ai supposé que les méthodes que serait O (1). merci – drunkmonkey