Complexidade computacional: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Bya97 (discussão | contribs)
Linha 67:
Para classificar o tempo de computação (ou recursos semelhantes, como o consumo de espaço), é necessário provar os limites superiores e inferiores sobre a quantidade mínima de tempo exigida pelo algoritmo mais eficiente para resolver um determinado problema. A complexidade de um algoritmo é geralmente entendida como a sua complexidade de pior caso, a menos que seja especificado o contrário. A análise de um determinado algoritmo cai sob o campo de análise de algoritmos. Para mostrar um limite superior ''T''(''n'') sobre a complexidade de tempo de um problema, é necessário mostrar apenas que há um determinado algoritmo com tempo de funcionamento, no máximo, ''T''(''n''). No entanto, provar limites inferiores é muito mais difícil, uma vez que limites inferiores fazem uma declaração sobre todos os possíveis algoritmos que resolvem um determinado problema. A frase "todos os algoritmos possíveis" inclui não apenas os algoritmos conhecidos hoje, mas qualquer algoritmo que possa ser descoberto no futuro. Para mostrar um limite inferior de ''T''(''n'') para um problema requer mostrar que nenhum algoritmo pode ter complexidade de tempo menor do que ''T''(''n'').
 
Limites superiores e inferiores são geralmente indicados usando a [[Grande-O|notação O-grande]], que desconsidera fatores constantes e termos menores. Isso faz com que os limites independam dos detalhes específicos do modelo computacional utilizado. Por exemplo, ''T''(''n'')&nbsp;=&nbsp;7''n''<sup>2</sup>&nbsp;+&nbsp;15''n''&nbsp;+&nbsp;40, em notação O-grande seria escrito da seguinte forma ''T''(''n'')&nbsp;=&nbsp;O(''n''<sup>2</sup>).
 
Limites inferiores são geralmente indicados usando a notação Ω
 
==Classes de complexidade==