Lar Desenvolvimento O que é complexidade de tempo? - o que é techopedia

O que é complexidade de tempo? - o que é techopedia

Índice:

Anonim

Definição - O que significa Complexidade do Tempo?

Complexidade temporal é um conceito em ciência da computação que lida com a quantificação da quantidade de tempo gasto por um conjunto de código ou algoritmo para processar ou executar em função da quantidade de entrada.

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

Techopedia explica a complexidade do tempo

A complexidade do tempo é simplesmente uma medida do tempo que uma função ou expressão leva para concluir 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. Há pouco sentido em medir a complexidade do tempo para aplicativos, como buscar o nome de usuário e a senha de um banco de dados para comparação ou simplesmente salvar dados, sejam 20 ou 5 ms; isso seria mais na linha do tempo de acesso. Não tem nada a ver com o tempo de execução, mas a diferença é insignificante. No entanto, se houver uma função recursiva que pode ser chamada várias vezes, determinar e entender a fonte de sua complexidade de tempo pode ajudar a reduzir o tempo total de processamento de, digamos, 600 ms para 100 ms.

A complexidade do tempo é expressa tipicamente na "grande notação O", mas existem outras notações. Essa é 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 em loop. Por exemplo, temos o algoritmo:

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{



foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {


statements; } }

Existem cinco entradas na matriz "numbers" e o loop "foreach" é repetido duas vezes. Portanto, o crescimento exponencial no tempo de processamento ocorre à medida que o número de entradas e o número de loops aumentam.

O que é complexidade de tempo? - o que é techopedia