Wat is de BIG-O-complexiteit van de functie (log n) k sup>voor elke k?
Antwoord 1, Autoriteit 100%
Elke functie waarvan de runtime het formulier heeft (log n) k sup>is o ((log n) k sup>). Deze uitdrukking is niet verlaagd voor elke andere primitieve functie met behulp van eenvoudige transformaties, en het is vrij gebruikelijk om algoritmen te zien met rundament zoals O (n (log n) 2 sup>). Functies met deze groeipercentage worden polylogaritmisch genoemd.
Typisch, typisch (log n) k sup>is geschreven als log k sup>n, dus het bovenstaande algoritme zou runtime o (n log 2 < / sup>N. In uw geval zou de functie-log 2 sup>N + LOG N O zijn (log 2 sup>n).
Elke functie met runtime van het formulierlogboek (N k sup>) heeft runtime o (log n), ervan uitgaande dat K een constante is. Dit komt omdat log (n k sup>) = k log n met behulp van logaritme-identiteiten, en k-log N is O (log n) omdat K een constante is. Je moet voorzichtig zijn om niet blindelings te concluderen dat een algoritme dat is (log (n k sup>)) is O (log n), hoewel; Als K een parameter is op de functie of afhankelijk van n, zou de juiste BIG-O-berekening in dit geval o (k-log n) zijn.
Afhankelijk van de context waarin u werkt, ziet u soms de notatie Õ (f (n)) om O (f (n) log k sup>n) voor een aantal constante k te bedoelen. Dit wordt soms “soft-o ” en gebruikt in contexten waarin de logaritmische termen irrelevant zijn. In dat geval zou u kunnen zeggen dat beide functies Õ (1) zijn, hoewel dit gebruik niet gebruikelijk is in eenvoudige algoritmische analyse (in feite buiten Wikipedia, heb ik dit precies één keer gezien).
Ik hoop dat dit helpt!
Antwoord 2, Autoriteit 14%
Het blijft (log(n))^2
. Een logaritme verheven tot een macht is al in de laagste/eenvoudigste vorm.
Antwoord 3, autoriteit 14%
(log n)^k is:
- O((log n)^k)
- O(n^k)
- O(n)
- O(n log n)
- O(n^1/2)
- O(n^0,0000002)
enz. Welke voor jou zinvol is, hangt af van de constanten en de context.
Antwoord 4, autoriteit 11%
log(n)
is O((log(n))^2)
dus de hele uitdrukking is O((log(n))^2)