[Algo]Colcolo complessità asintotica

Pablitos23
Dato il seguente algoritmo trovare l'equazione di ricorrenza e calcolarne la complessità.

analizzami( A, i, j)

   m = j-i+1
   c = 1
   m = (i+j+1)/2
   while m>1 do
      c++
      m = m/2
   if (n>1) then
      return c analizzami( A, i, m-1) + analizzami( A, m+1, j)




Secondo me il seguente algoritmo ha un problema:
m ogni volta dopo il while, diventa sempre o 1 o 0. Quindi il primo analizzami andrà sempre al caso base, mentre il secondo avrà sempre l'input uguale a quello del chiamante.
Quindi con un input >1 entriamo in un loop infinito???

Se qualcuno può delucidarmi mi farebbe un gran favore.
Saluti e buona serata :smt012

Risposte
apatriarca
A prima vista direi in effetti che non ha senso.

Pablitos23
Un refuso possibile potrebbe essere la prima variabile m, che sarebbe una n in realtà, la quale andrebbe poi anche nel while, mentre il resto rimane invariato.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.