Você está na página 1de 1

1) a) O(N) + O(M) = O(N+M)

b) O(N²)
c) O(nlog n)

2) a) Termo Dominante: 0.001n^5 - O(n^5)


b) Termo Dominante: 50nlog10 n - O(nlog10 n)
c) Termo Dominante: 2.5n^1.75 - O(n^1.75)
d) Termo Dominante: n² log2n - O(n² log2n)
e) Termo Dominante: n log2 n - O(n log2 n)
f) Termo Dominante: 3 log8 n - O(log8 n)
g) Termo Dominante: 0.01n² - O(n²)
h) Termo Dominante: 100n² - O(n²)
i) Termo Dominante: 0.5n^1.25 - O(n^1.25)
j) Termo Dominante: n(log2 n)² - O(n(log2 n)²)
k) Termo Dominante: n³ - O(n³)
l) Termo Dominante: 0.003 log4 n - O(log4 n)

3) i) O(N) - O metódo utiliza um laço de repetição no qual percorre um vetor de


tamanho N em busca de um valor fornecido. Nesse sentido, no pior dos casos, o
algoritmo
deverá percorrer todo o vetor. Com isso, a complexidade deve-se ao tamanho do vetor
(N).

ii) O(N) - Assim como no anterior, o metódo utiliza um laço de repetição, mas dessa
vez utizando o for, sobre um vetor de tamanho N em busca de um valor específico.
Como visto no exemplo anterior, a complexidade deve-se pelo tamanho do vetor(N),
pois, caso seja necessário, o algoritmo percorrerá todo o vetor tomando um tempo de
T(N)=O(N)

iii) O(log n) - Nesse caso, o metódo também utiliza um laço de repetição, porém ele
parte do meio do vetor e realiza a busca comparando apenas com o valor que
encontra-se no meio,
no qual determina se direciona-se para a metade anterior ou posterior, essa
complexidade pode ser mensurada através do logaritmo de base 2 sobre o tamanho do
vetor(N).

4) O(n²) -> Nesse metódo, cada utilização do laço for acarreta numa complexidade de
O(n), sendo n o número de entradas. A cada iteração, cada laço executa n-1
comparações, no qual a
a cada iteração o valor inteiro incrementa em +1 até n. Desse modo, como os laços
estão aninhados, essa operação será realizada n vezes. Ou seja, a expressão pode
ser dada por:
n(n-1), realizando a distributiva obtemos: n²-n. Nesse último resultado, o termo
dominante é n².

Você também pode gostar