Анализ Big O с рекурсивным деревом сортировки Stooge

Я пытаюсь найти Большое О для марионетки. Из Википедии

algorithm stoogesort(array L, i = 0, j = length(L)-1)
     if L[j] < L[i] then
         L[i] ↔ L[j]
     if j - i > 1 then
         t = (j - i + 1)/3
         stoogesort(L, i  , j-t)
         stoogesort(L, i+t, j  )
         stoogesort(L, i  , j-t)
     return L

Я плохо разбираюсь в анализе производительности ... Я нарисовал дерево рекурсии

Я считаю, что ...:

  • height: log (n)
  • работают на уровне 0: n // с уровня 0 или с 1?
  • работа на уровне 1: 2n
  • работа на уровне 2: 4n
  • работа на уровне 3: 8n
  • работа на уровне log (n): (2 ^ журнал (п)) п = O (п ^ 2) ? 2 ^ log2 (n) = n , но что на самом деле дает 2 ^ log3 (n) ?

Значит, это O (n ^ 2 * log (n)) = O (n ^ 2) ? Это далеко от Википедии O (n ^ (log3 / log1.5)) ...

7
задан Jiew Meng 15 November 2011 в 02:30
поделиться