Qual é o Big O de T (n)?


7

Eu tenho uma lição de casa que eu deveria encontrar a fórmula e a ordem de T(n) dado por

T(1)=1T(n)=T(n−1)T(n−1)+1.

Eu estabeleci que T(n)=1nmas agora estou um pouco confuso. ÉT(n)∈O(1n) a resposta correta para a segunda parte?

Com base na definição de big-O, temos que

O(g(n))={f(n)∣∃c,n0>0 s.t. 0≤f(n)≤cg(n) for all n≥n0}.

Isso vale para f(n)=g(n)=1n então, com base na definição, O(1n) deve estar correto, mas, no mundo real, é impossível que o algoritmo seja mais rápido do que O(1).

Respostas:


8

Sim, todas as funções f(n) satisfazer f(n)∈O(f(n)). As definições são significativas mesmo quef(n)não é o tempo de execução de nenhuma função. De fato, essa notação vem da teoria dos números, ondef(n)geralmente é algum termo de erro. Mesmo na ciência da computação, às vezes grandes notações de O são usadas ao analisar algoritmos para algo que não seja um tempo de execução ou requisitos de espaço.


Parece que a diferença é que T(n) cresce com 1n Como n aumenta, mas o número de operações para calcular T(n) é O(1) se você simplificar T(n) para T(n)=1n ou O(n2)se você usar a definição fornecida no problema de lição de casa diretamente.
— 24414 Kevin

11
@ Kevin A pergunta não diz nada sobre o número de operações necessárias para calcular qualquer coisa: apenas pede a solução para uma relação de recorrência. As soluções para recorrências não precisam ter tempos de execução para algoritmos, assim como os números não precisam ter comprimentos ou pesos.
— David Richerby
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.