Eu sou novo em entender algoritmos de ciência da computação. Entendo o processo da pesquisa binária, mas estou tendo um pequeno mal-entendido com sua eficiência.
Em um tamanho de elementos, seriam necessários, em média, etapas para encontrar um elemento específico. Tomando o logaritmo da base 2 de ambos os lados, produz . Portanto, o número médio de etapas do algoritmo de pesquisa binária não seria ? n log 2 ( s ) = n log 2 ( s )
Este artigo da Wikipedia sobre o algoritmo de busca binária diz que o desempenho médio é . Porque isto é assim? Por que esse número não é ?log 2 ( n )
algorithms
runtime-analysis
binary-search
DrPepper
fonte
fonte
Respostas:
Quando você altera a base do logaritmo, a expressão resultante difere apenas por um fator constante que, por definição da notação Big-O , implica que ambas as funções pertencem à mesma classe em relação ao seu comportamento assintótico.
Por exemplo que .C=1
Então e difere por uma constante , e, portanto, ambos são verdadeiras: de um modo geral é para inteiros positivos e maior do que 1.log 2 n C log 10 n é O ( log 2 n ) log 2 n é O ( log 10 n ) log a n O ( log b n ) a bregistro10n registro2n C
Outro fato interessante com funções logarítmicas é que, enquanto a constante , NÃO é , mas é desde que que difere de apenas pelo fator constante .n k O ( n ) log n k O ( log n ) log n k = k log n log n kk>1 nk O(n) lognk O(logn) lognk=klogn logn k
fonte
Mas, como já foi demonstrado, neste caso, não acaba importando.
fonte