0% acharam este documento útil (0 voto)
97 visualizações2 páginas

Lista

I. O documento apresenta exercícios sobre análise de algoritmos incluindo complexidade assintótica, ordenação e recursividade. II. São pedidos exemplos de quando usar um algoritmo de complexidade n5 ou 2n, análise da complexidade de algoritmos para encontrar máximo e mínimo em vetor e multiplicação de matrizes. III. Também são solicitadas provas matemáticas, explicação de teoremas sobre classes de complexidade e análise da complexidade de três algoritmos de ordenação no melhor, pior e caso médio.

Enviado por

Bruno B.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
97 visualizações2 páginas

Lista

I. O documento apresenta exercícios sobre análise de algoritmos incluindo complexidade assintótica, ordenação e recursividade. II. São pedidos exemplos de quando usar um algoritmo de complexidade n5 ou 2n, análise da complexidade de algoritmos para encontrar máximo e mínimo em vetor e multiplicação de matrizes. III. Também são solicitadas provas matemáticas, explicação de teoremas sobre classes de complexidade e análise da complexidade de três algoritmos de ordenação no melhor, pior e caso médio.

Enviado por

Bruno B.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 2

Pontifícia Universidade Católica de Goiás

Escola de Ciências Exatas e de Computação


Projeto e Análise de Algoritmos – CMP1065
Exercícios

1. Dois algoritmos A e B possuem complexidade n5 e 2n ,respectivamente. Você utilizaria o


algoritmo B ao invés do A. Em qual caso? Exemplifique.
2. Para duas funções g(n) e f(n) temos que f(n)=”teta”(n) se somente se f(n)= Ω(g(n)) e
f(n)=O(g(n)). Explique o teorema acima.
3. Podemos definir o seguinte algoritmo para calcular a ordem de complexidade de algoritmos
não recursivos:
I. Escolher o parâmetro que indica o tamanho da entrada
II. Identificar a operação básica (comparação, atribuição)
III. Estabeleça uma soma que indique quantas vezes sua operação básica foi executada
(pio caso)
IV. Utilize regras para manipulação de soma e fórmulas definindo uma função de
complexidade
V. Encontre a ordem de complexidade

a) Baseando-se no algoritmo acima determine a ordem de complexidade do algoritmo abaixo:

MaxMin(vetor v)
max=v[1];
min=v[1];
para i=2 até n faça
se v[1]> max então max=v[1]; fimse
se v[1]< min então min=v[1]; fimse
fimpara;
fim.
b) Podemos dizer que o algoritmo acima é O(n2 )? Justifique.

4. Prove que:

𝑛 𝑖

∑ ∑ 𝑗 = 𝜃(𝑛3 )
𝑖=1 𝑗=1

5. Considere o seguinte algoritmo recursivo, cujo argumento n é um número inteiro positivo.

Asterisco(n)
1 se n>0
2 então Asterisco(n-1)
3 Para i<-1 até n faça
4 Imprima “*”
5 Asterisco(n-1)
6. O Algoritmo abaixo (Multiplicação de matrizes) tem como entrada Duas matrizes A = (aij ) ∈
Rm×n, B = (bjk) ∈ Rn×o .
Saída: O produto C = (cik) = AB ∈ Rm×o .
1 for i := 1, . . . , m do
2 for k := 1, . . . , o do
3 cik := 0
4 for j := 1, . . . , n do
5 cik := cik + aij bjk
6 end for
7 end for
8 end for

7. Escreva as funções e faça análise da complexidade dos 3 algoritmos de ordenação listados


abaixo, informando a complexidade no pior caso, caso médio e melhor caso.
a. Insertion Sort
b. Selection Sort
c. Bubble Sort

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy