Com s'esmenta a la resposta a la pregunta enllaçada, una manera habitual que un algorisme tingui complexitat temporal O(log n) és que aquest algorisme funcioni reduint repetidament la mida de l'entrada. per algun factor constant a cada iteració.
Quin significat té el registre n?
O(log N) significa bàsicament que temps augmenta linealment mentre que la n augmenta exponencialment. Per tant, si es triga 1 segon a calcular 10 elements, es trigarà 2 segons a calcular 100 elements, 3 segons a calcular 1000 elements, etc. És O(log n) quan dividim i conquerim tipus d'algorismes, per exemple, cerca binària.
Què és O i registre n?
Per a l'entrada de mida n, un algorisme d'O(n) realitzarà passos proporcionals a n, mentre que un altre algorisme d'O(log(n)) realitzarà passos aproximadament log(n). És evident que log(n) és més petit que n, per tant, l'algorisme de complexitat O(log(n)) és millor.
Com es calcula el registre n?
La idea és que un algorisme és O(log n) si en comptes de desplaçar-se per una estructura 1 per 1, dividiu l'estructura per la meitat una i altra vegada i feu un nombre constant d'operacions per a cada divisió. Els algorismes de cerca on l'espai de respostes es divideix constantment són O(log n).
Què és log n Square?
Registre ^2 (
) significa que és proporcional al registr del registr per a un problema de mida
. Registre(
)^ 2 significa que ésproporcional al quadrat del registre.