1. Definição
notação matemática que descreve o limite superior do tempo de execução ou o uso de um espaço de algoritmo. É denotado como ou (f (n)) , onde f (n) é uma função que representa tempo ou espaço, dependendo do tamanho da entrada n .
2. Objetivo
Comparação de algoritmos - : permite comparar algoritmos diferentes e escolher o mais eficiente para um determinado problema.
escalabilidade
: ajuda a prever como um algoritmo se comportará quando a quantidade de dados aumentar.
-
3. Análise de complexidade
pior caso
: refere -se ao cenário em que o algoritmo leva mais tempo ou usa mais recursos. Grande ou geralmente se refere a este caso.
!
-
4. Espaço vs. Tempo
-
Complexidade temporária : refere -se ao tempo que leva para que um algoritmo seja executado.
complexidade espacial
: refere -se à quantidade de memória adicional que você usa. Você pode ter notações como
ou (1)
(espaço constante) ou - (espaço linear).
Exemplo:
-
import timeit
Importar matplotlib.pyplot como pLT
Importar cprofile
# O (1)
Def Constant_time_operation ():
retornar 42
# O (log n)
Def logarithmic_time_operation (n):
Contagem = 0
Enquanto n> 1:
N // = 2
Contagem = 1
Contagem de retorno
# Ou (n)
def linear_time_operation (n):
Total = 0
para i no intervalo (n):
Total = i
Retorno total
# O (n log n)
def linear_logarithmic_time_operation (n):
Se n
obrigado por ler !!
Apóy me reagindo e opinião