Pergunta

Eu gostaria de saber se $ o (n \ log n) $ é uma velocidade exponencial sobre $ O (n ^ 2) $ ?

Foi útil?

Solução

$ o (n \ log n) $ é um polinomial speedup sobre $ o (n ^ 2) $ , em particular quase um pouco quadrático speedup. $ o (n \ log n) $ é grande de $ o (n ^ k $ ) Para todos $ k> 1 $ . Seu tempo de execução é, portanto, entre linear e qualquer função de força cujo expoente é estritamente maior que 1.

Deixe $ f (n)= n \ log n $ . Levá-lo para um poder de algum valor ligeiramente inferior a 2 para aproximar o tempo de execução original. Concluímos $ f (n) \ APROXSILON} (\ Log n) ^ {2- \ VAREPSILON} $ e na $ O (n ^ 2) $ . Se nós square $ f (n) $ , temos $ n ^ 2 (\ log n) ^ 2 $ , ligeiramente menos eficiente do que a original $ n ^ 2 $ , portanto, é basicamente uma velocidade quadrática.

Em vez disso, $ o (\ log n ^ 2)= o (\ log n) $ é uma velocidade exponencial sobre $ O (n ^ 2) $ . Se $ g (n)= 2 \ log (n) $ , então $ e ^ {g (n)}= n ^ 2 $ .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top