Zoals vermeld in het antwoord op de gekoppelde vraag, is een gebruikelijke manier voor een algoritme om tijdcomplexiteit O(log n) te hebben, dat dat algoritme werkt door herhaaldelijk de grootte van de invoer te verkleinen met een constante factor bij elke iteratie.
Wat is de betekenis van log n?
O(log N) betekent in feite dat tijd lineair omhoog gaat terwijl de n exponentieel omhoog gaat. Dus als het 1 seconde kost om 10 elementen te berekenen, duurt het 2 seconden om 100 elementen te berekenen, 3 seconden om 1000 elementen te berekenen, enzovoort. Het is O(log n) wanneer we algoritmen van het verdeel-en-heers-type doen, bijvoorbeeld binair zoeken.
Wat is O en log n?
Voor de invoer van grootte n, zal een -algoritme van O(n) stappen uitvoeren die evenredig zijn aan n, terwijl een ander algoritme van O(log(n)) stappen zal uitvoeren ongeveer log(n). Log(n) is duidelijk kleiner dan n, vandaar dat het complexiteitsalgoritme O(log(n)) beter is.
Hoe bereken je log n?
Het idee is dat een algoritme O(log n) is als je in plaats van 1 voor 1 door een structuur te scrollen, de structuur steeds opnieuw in tweeën deelt en een constant aantal bewerkingen uitvoert voor elke splitsing. Zoekalgoritmen waarbij de antwoordruimte steeds gesplitst wordt, zijn O(log n).
Wat is log n Square?
Log ^2 (
) betekent dat het evenredig is met de log van de log voor een opgave van de grootte
. Log(
)^ 2 betekent dat het isevenredig met de square van de log.