Se alguém se refere ao uso O(log n)
de um O(n)
algoritmo em vez de um algoritmo como uma aceleração exponencial, como se referiria à aceleração obtida usando um O(1)
algoritmo versus um O(n)
?
fonte
Se alguém se refere ao uso O(log n)
de um O(n)
algoritmo em vez de um algoritmo como uma aceleração exponencial, como se referiria à aceleração obtida usando um O(1)
algoritmo versus um O(n)
?
Não há nome para isso, mas o mais próximo seria a aceleração "infinita". é considerado uma aceleração exponencial sobre , porque é exponencial em : se usarmos a função exponencial , obtemos .
No entanto, não é nada em : não há como recuperar de , não importa a rapidez com que a função que assumimos cresce, sempre será uma constante (e nunca será igual a ). Como , se torna infinitamente menor que .
Sua confusão parece estar relacionada ao significado técnico da palavra "exponencial".
Como a definição é dada em http://www.learnersdictionary.com , é definida como:
Crescimento exponencial é literalmente crescimento que se torna cada vez mais rápido à medida que continua. No uso comum, no entanto, exponencial significa simplesmente "muito rápido" quando usado com palavras como crescimento e aumento.
Agora, vamos considerar um exemplo, em que n = 256 (uma potência de 2 por uma questão de simplicidade). Se n = 256, então \ log_2 n = 8. Essa é uma aceleração "exponencial", devido à função de log.
No que diz respeito a O (1), você precisa perceber que \ log_n n = 1 em geral. Com isso dito, O (1) também será uma aceleração "exponencial" ideal.
Espero que isso esclareça as coisas.