Risposte:
Dipende da dove si trova il logaritmo. Se è solo un fattore, allora non fa differenza, perché big-O o ti consente di moltiplicare per qualsiasi costante.
Se prendi la base è importante. Nella base 2 avresti solo , nella base 10 è circa .
Poiché la notazione asintotica ignora i fattori costanti e ogni due logaritmi differiscono per un fattore costante, la base non fa alcuna differenza: per tutti . Quindi non è necessario specificare la base di un logaritmo quando si usa la notazione asintotica.
Come e , quindi
Nella maggior parte dei casi, è sicuro abbandonare la base del logaritmo perché, come hanno sottolineato altre risposte, la formula del cambio di base per i logaritmi significa che tutti i logaritmi sono multipli costanti l'uno dell'altro.
Ci sono alcuni casi in cui questo non è sicuro da fare. Ad esempio, @ gnasher729 ha sottolineato che se si ha un logaritmo in un esponente, allora la base logaritmica è davvero significativa.
Volevo sottolineare un altro caso in cui la base del logaritmo è significativa, ed è in questi casi che la base del logaritmo dipende direttamente da un parametro specificato come input per il problema. Ad esempio, l'algoritmo di ordinamento radix funziona scrivendo i numeri in alcune basi, decomponendo i numeri di input nella loro base-cifre, quindi utilizzando l'ordinamento di conteggio per ordinare quei numeri una cifra alla volta. Il lavoro svolto per round è quindi and there are roughly rounds (where is the maximum input integer), so the total runtime is . For any fixed integer this simplifies to . However, what happens if isn't a constant? A clever technique is to pick , in which case the runtime simplifies to . Since = , the overall expression simplifies to . Notice that, in this case, the base of the logarithm is indeed significant because it isn't a constant with respect to the input size. There are other algorithms that have similar runtimes (an old analysis of disjoint-set forests ended up with a term of somewhere, for example), in which case dropping the log base would interfere with the runtime analysis.
Another case in which the log base matters is one in which there's some externally-tunable parameter to the algorithm that control the logarithmic base. A great example of this is the B-tree, which requires some external parameter . The height of a B-tree of order is , where the base of the logarithm is significant in that is not a constant.
To summarize, in the case where you have a logarithm with a constant base, you can usually (subject to exceptions like what @gnasher729 has pointed out) drop the base of the logarithm. But when the base of the logarithm depends on some parameter to the algorithm, it's usually not safe to do so.