Complexidade do tempo

Definição – o que significa complexidade de tempo?

Complexidade de tempo é um conceito em ciência da computação que trata da quantificação da quantidade de tempo que um conjunto de código ou algoritmo leva para processar ou executar em função da quantidade de entrada.

Em outras palavras, complexidade de tempo é essencialmente eficiência, ou quanto tempo uma função de programa leva para processar uma determinada entrada.

Definirtec explica a complexidade do tempo

A complexidade do tempo é simplesmente uma medida do tempo que uma função ou expressão leva para completar sua tarefa, bem como o nome do processo para medir esse tempo. Pode ser aplicado a quase qualquer algoritmo ou função, mas é mais útil para funções recursivas. Não faz muito sentido medir a complexidade do tempo para aplicativos, como buscar o nome de usuário e a senha em um banco de dados para comparação ou simplesmente salvar os dados, sejam 20 ms ou 5 ms; isso ficaria mais na linha de tempo de acesso. Não tem nada a ver com a preocupação com seu tempo de execução, mas sim que a diferença é insignificante. No entanto, se houver uma função recursiva que pode ser chamada várias vezes, determinar e compreender a fonte de sua complexidade de tempo pode ajudar a encurtar o tempo de processamento geral de, digamos, 600 ms para 100 ms.

A complexidade do tempo é expressa tipicamente na “notação grande O”, mas existem outras notações. Esta é uma representação matemática do limite superior do fator de escala para um algoritmo e é escrita como O (Nn), com “N” sendo o número de entradas e “n” sendo o número de expressões de loop. Por exemplo, temos o algoritmo:

números [] = {5,6,10,11,2}; foreach (número como número1)

{

foreach (número como número2) {

afirmações; }}

Existem cinco entradas no array “numbers” e o loop “foreach” é repetido duas vezes. Portanto, o crescimento exponencial no tempo de processamento ocorre conforme o número de entradas e o número de loops aumentam.