Anda di halaman 1dari 3

1a Lista de Análise de Algoritmos

Prof. Emerson Lima


Universidade Católica de Pernambuco

Resumo
Leia atentamente todas as questões antes de começar a resolução. As respostas
obtidas somente terão validade se devidamente justificadas. Evite usar material
diferente do que foi apresentado em sala. Se for utilizar algum material extra,
justifique-o adequadamente para validá-lo.

Questões

Questão 1 Defina o conceito informal e formal de algoritmo. Dê exemplos de aplicações


de algoritmos como uma tecnologia.
Questão 2 Quais os principais tipos de algoritmos. Descreva sucintamente cada tipo
fornecendo exemplos.
Questão 3 Para quais tipos de algoritmos diferentes execuções sobre os mesmos dados
de entrada podem fornecer diferentes resultados de saı́da. Argumente sobre a utilidade
de algoritmos com este comportamento.
Questão 4 Qual a diferença principal entre algoritmos determinı́sticos e heurı́sticas. Por
que dizemos que as heurı́sticas não são, de fato, algoritmos?
Questão 5 Argumente sobre o por que estudar algoritmos conhecidos pode ser útil na
criação de novos algoritmos. Dê outras razões pela qual o estudo da teoria de análise dos
algoritmos pode ser útil na prática.
Questão 6 O que caracteriza um dado algoritmo. Explique mediante exemplos.
Questão 7 Quais a principais formas de descrever um algoritmo. Quais as principais
vantagens e desvantagens de cada descrição. Quais os principais problemas enfrentados
na descrição de um dado algoritmo. Explique sucintamente e mediante exemplos cada
um destes problemas.
Questão 8 Quanto aos tipos de análise, como se classificam a análise de algoritmos. Qual
o objetivo de cada tipo de análise?
Questão 9 Quais os dois principais objetivos da análise de corretude? Explique-os. Quais
as principais ferramentas da análise de corretude? Qual a ferramenta mais adequada a
análisar algoritmos iterativos? Qual a ferramenta mais adequada a analisar algoritmos
recursivos?
Questão 10 Em que consiste a análise de estilo? Quais seus principais objetivos?
Questão 11 Em que consiste a análise de eficiência? Quais as principais variáveis estu-
dadas na análise de eficiência?
Questão 12 A análise de tempo de execução é sempre a mais importante do ponto de
vista do usuário? por quê?
2

Questão 13 O que é a análise teórica de algoritmos e qual seu principal objetivo?


Questão 14 Com relação a análise teórica, discuta os conceitos de escalabilidade, viabi-
lidade e confiabilidade.
Questão 15 Por que é necessário, na análise teórica, definir um modelo adequado de
máquina?
Questão 16 Descreva as caracterı́sticas de uma máquina universal de acesso aleatório
empregada na análise de algoritmos. Explique a razão de tais caracterı́sticas.
Questão 17 Explique os tipos de análise teórica com relação a dependência dos dados
de entrada. Qual o escopo de uso de cada tipo?
Questão 18 Quais os elementos principais de um laço? Explique mediante exemplos em
laços for, while e do...while. Laços controlados por goto possuem tais elementos?
Questão 19 Quais as cinco condições que implicam na corretude de uma laço? Explique
seu uso.
Questão 20 Explique em que consiste o problema da ordenação e sua formulação ma-
temática. Por que o estudo deste problema é tão importante? Qual a razão de não
estudarmos apenas um algoritmo (digamos o QuickSort) apenas?
Questão 21 O estudo dos algoritmos de ordenação pode ser restrito apenas a ordenação
de vetores de inteiros? Por quê? O que é estabilidade e qual a razão da importância deste
conceito? Por que a movimentação de dados (troca de chaves) é um conceito importante
no estudo destes algoritmos?
Questão 22 Qual a classificação dos algoritmos de ordenação com relação ao conjunto
de registros? Explique cada tipo e seu escopo de uso.
Questão 23 Descreva a operação dos algoritmos BubbleSort, SelectionSort e Insertion-
Sort.
Questão 24 Quais as principais caracterı́sticas da notação assintótica? Qual sua im-
portância?
Questão 25 Argumente sobre o fato de, na notação assintótica, um algoritmo ser sempre
10 vezes mais rápido que outro não ser significativo enquanto que um algoritmo O(n2 ),
ainda que mais rápido nos testes, que um outro algoritmo que sabemos O(n log n) ser
considerado pior do que este.
Questão 26 Forneça a descrição matemática e um exemplo das seguintes notações O(n2 ),
Ω, Θ, o e ω. Qual o escopo de uso de cada uma destas notações. Qual a associação que
geralmente é feita para as 3 primeiras destas notações? Por quê?
Questão 27 Quanto as classes de complexidade, como se classificam as principais funções
encontradas na análise de algoritmos? Explique sucintamente cada uma delas fornecendo,
também, exemplos.
Questão 28 Com base nos estudos de sala de aula, proponha uma classificação dos
algoritmos de ordenação estudados conforme sua eficiência, em termos do número de
movimentações das chaves e da quantidade de linha executadas (tempo de processamento).
Em que casos você indicaria cada algoritmo?
3

Questão 29 Como os tempos de execução e/ou processamento são positiva ou negativa-


mente afetados pelos seguintes fatores:
• Escolha de uma linguagem particular de programação;

• Escolha de um compilador/interpretador especı́fico;

• Habilidade e conhecimento do programador/projetista do algoritmo;

Questão 30 Defina tempo de execução e tempo de processamento (ou tempo de CPU)


de um algoritmo.
Questão 31 O que significa um algoritmo estar no limite teórico de seu tempo de proces-
samento. Se um algoritmo encontra-se neste limite teórico, isto significa que, para todas
as instâncias de entrada, ele será sempre mais rápido que outro? Argumente.
Questão 32 Um algoritmo cujo tempo de processamento é proporcional a n! (n tamanho
da entrada) é inútil? Argumente.
Questão 33 Argumente por que se o tempo de processamento de um algoritmo é propor-
cional ao tamanho de entrada ele é sempre preferı́vel a outro que resolva a mesma tarefa
mas cujo tempo de execução é proporcional a 2n (n sendo o tamanho da entrada) ainda
que este último tenha sido, nos testes realizados para valores de n, digamos, até 100, mais
rápido.
Questão 34 Descreva a diferença entre demanda computacional teórica e demanda com-
putacional especı́fica. Dê exemplos. Qual a relação entre estes conceitos?
Questão 35 O que significa dizer que os algoritmos polinomiais são, via-de-regra mais
úteis na prática que os exponenciais?
Questão 36 O que significa um problema ser intratável? E um problema ser bem resol-
vido? Problemas intratáveis não possuem solução computacional na prática? Que tipo
de solução é geralmente utilizada neste caso?
Questão 37 O que é a pesquisa exaustiva? Existe algum uso da pesquisa exaustiva que
não seja exponencial ou fatorial? Exemplifique.
Questão 38 Descreva a diferença entre caso médio e caso tı́pico. Existe algum algoritmo
cujo tempo de caso médio seja significativamente diferente do tempo de caso tı́pico? Qual?
Questão 39 Descreva o problema da n-mochila 0 − 1 e por que tal problema, por busca
exaustiva, é da ordem Θ(2n ).
Questão 40 Descreva o problema do caixeiro viajante e por que tal problema, por busca
exaustiva, é da ordem Θ(n!).

Anda mungkin juga menyukai