Como mencionado na resposta à pergunta vinculada, uma maneira comum de um algoritmo ter complexidade de tempo O(log n) é que esse algoritmo funcione repetidamente reduzindo o tamanho da entrada por algum fator constante em cada iteração.
Qual é o significado de log n?
O(log N) basicamente significa que tempo sobe linearmente enquanto o n sobe exponencialmente. Portanto, se levar 1 segundo para calcular 10 elementos, levará 2 segundos para calcular 100 elementos, 3 segundos para calcular 1.000 elementos e assim por diante. É O(log n) quando dividimos e conquistamos o tipo de algoritmos, por exemplo, busca binária.
O que é O e log n?
Para a entrada de tamanho n, um algoritmo de O(n) realizará passos proporcionais a n, enquanto outro algoritmo de O(log(n)) realizará passos aproximadamente log(n). Claramente log(n) é menor que n, portanto o algoritmo de complexidade O(log(n)) é melhor.
Como calcular log n?
A ideia é que um algoritmo é O(log n) se em vez de percorrer uma estrutura de 1 por 1, você divide a estrutura ao meio repetidamente e faz um número constante de operações para cada divisão. Algoritmos de busca onde o espaço de resposta continua sendo dividido são O(log n).
O que é log n quadrado?
Log ^2 (
) significa que é proporcional ao log do log para um problema de tamanho
. Log(
)^ 2 significa que éproporcional ao quadrado do log.