Você está na página 1de 2

UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE FACULDADE DE CINCIAS EXATAS E NATURAIS - FANAT DEPARTAMENTO DE INFORMTICA DI MESTRADO EM CINCIA DA COMPUTAO

DISCIPLINA: PROJETO E ANLISE DE ALGORITMOS Aluno:_______________________________________________________Data __/__/__

LISTA DE EXERCCIOS I Data de entrega: 18/04/12 - Peso: 25% no total das listas.
1. Proponha exemplos de problemas prticos que posam ser modelados como casos particulares de: (1,0) a. Problema do Caixeiro Viajante b. Problema de Alocao de Tarefas c. Problema de Satisfabilidade OBS.: Sugira para casa um dos casos uma estratgia para construo de algoritmo, bem como a estrutura de dados que voc utilizaria. 2. O Sudoku1 existe desde a dcada de 1970, mas comeou a ganhar popularidade no final de 2004 quando comeou a ser publicado diariamente na sesso de puzzles do jornal The Times. Entre abril e maio de 2005 o puzzle comeou a ganhar um espao na publicao de outros jornais britnicos e, poucos meses depois, ganhou popularidade mundial. O objetivo do Sudoku preencher todos os espaos em branco do quadrado maior, que est dividido em nove grids, com os nmeros de 1 a 9. Os algarismos no podem se repetir na mesma coluna, linha ou grid. (2,0)

Dadas as informaes anteriores, proponha uma estratgia (base para um algoritmo) para resolver o problema atingindo o objetivo do jogo. (1,0) 3. Qual o menor valor de n tal que um algoritmo cujo tempo de execuo 100n2 funciona mais rpido que um algoritmo cujo tempo de execuo e 2n na mesma mquina? (1,0)
1

A palavra Sudoku significa nmero sozinho em japons, o que mostra exatamente o objetivo do jogo

4. Suponha a comparao das implementaes de ordenao por insero d ordenao por intercalao na mesma mquina. Para entradas de tamanho n, a ordenao por insero executada em 8n2 passos, enquanto a ordenao por intercalao executada em 64lg n passos. Para que valores de n a ordenao por insero supera a ordenao por intercalao? (1,0) 5. Considere o problema da busca: Entrada: um vetor A[1 . . n] e um valor x. Sada: Um ndice i tal que A[i] = x ou 1 se x no aparece no vetor. Escreva um pseudo-cdigo para o algoritmo BUSCA LINEAR que varre o vetor da esquerda para a direita procurando pelo valor x. Escreva um invariante de lao que garante que o algoritmo est correto. (1,0) 6. Considere o seguinte mtodo para ordenar um vetor A[1 . . n]. Encontre o menor elemento em A e troque-o de posio com A[1]. Ento procure o segundo menor elemento de A e troque-o de posio com A[2] (note que para isto basta procurar o ??? elemento em A[2 . . n]). Repita este processo para os primeiros n 1 elementos de A. Escreva um pseudo-cdigo para este algoritmo que conhecido como algoritmo de seleo (selection sort). Escreva um invariante de lao que garante que o algoritmo est correto. Por que suficiente considerar apenas os n 1 primeiros elementos? Faa uma anlise de complexidade detalhada. Qual o melhor e o pior caso? (1,0) 7. Considere novamente o problema da busca supondo agora que o vetor A[1 . . n] est ordenado em ordem crescente. A idia consiste em tomar o elemento do meio A[[n/2]], comparar com x e eliminar uma das metades A[1 . . [n/2]1] e A[[n/2]+1 . . n]. O mtodo de busca binria consiste em repetir este processo eliminando metade do vetor a cada vez. Escreva um algoritmo recursivo que implemente esta idia. Escreva uma recorrncia que descreve a complexidade de tempo (no pior caso) e mostre que a soluo (lg n). (1,0) 8. Para cada funo e cada tempo t na tabela a seguir, determine o maior tamanho de n de um problema que pode ser resolvido no tempo t, supondo-se que o algoritmo para resolver o problema demore (n) microssegundos. (2,0) (n) 1 segundo 1 minuto 1 hora 1 dia 1 ms 1 ano 1 sculo t lg n
n

N n lg n n2 n3
2n
n!

Você também pode gostar