Академический Документы
Профессиональный Документы
Культура Документы
compar-los ( l (memria, i
Caso exista vrios algoritmos para resolver um problema com a mesma ordem de grandeza, este mtodo pode ajudar a d idi entre eles qual o melhor. d d d j d decidir l l lh
Ex: Heapsort e Quicksort Ambos so O(nlogn)
Modelo Matemtico M d l M t ti
Baseado em um computador idealizado Especifica-se o conjunto de operaes a serem executadas e o custo de cada uma delas
Usualmente ignora-se algumas operaes, considrando apenas aquelas mais significativas Ex: Algoritmo de Ordenao: considerar apenas o nmero de comparaes e ignorar operaes de atribuio, operaes aritmticas, ...
Exemplo
Encontrar o maior elemento em um vetor de inteiros de tamanho n. int Max(int vetor[]){ int max = vetor[1]; for(int i=1; i<n; i++) if ( (max < vetor[i]) t [i]) max = vetor[i]; return max; } F(n) = n-1, para n > 0 F(n) indica o nmero de comparaes Se o nmero de comparaes for utilizado como medida de custo, ento a funo Max tima. Custo uniforme independente da ordem como os elementos esto dispostos no vetor. t A medida de execuo de um algoritmo depende principalmente do tamanho da entrada dos dados. Por isso, comum considerar-se o tempo de execuo de um p g programa como uma funo do tamanho da entrada de dados.
7 Algoritmos e Estrutura de Dados III
Exemplo
Procurar um registro em um arquivo
Pesquisa sequencial: examinar os registros na ordem em que eles aparecem no arquivo, at o que o registro procurado seja encontrado. encontrado f(n) = 1 (melhor caso) f(n) = n (pior caso) f(n) = (n+1)/2
Se pi for a probabilidade do i-simo registro seja procurado, e p p g j p considerando que para recuperar o i-simo registro so necessrias i comparaes, ento: f(n) = 1 x p1 + 2 x p2
Exerccios
1.
2. 2
3. 4. 4
5. 5
Dado um vetor de n registros, faa um programa em C para pesquisar a ocorrncia de um certo registro Determine a registro. funo de complexidade de tempo do algoritmo implementado. Determinar a f d complexidade de tempo para definir D t i funo de l id d d t d fi i a menor ocorrncia dentro de um vetor. Considerar o nmero de comparaes. Qual a funo de complexidade de tempo para preencher uma matriz tridimensional de n elementos. Qual a funo de complexidade de tempo para localizar um elemento numa matriz tridimensional de n elementos. Considerar somente as comparaes. Fazer um programa que encontre o maior e o menor F t i elemento de um vetor. Definir a funo de complexidade.
Algoritmos e Estrutura de Dados III
10
Referncias
ZIVIANE, Nivio ZIVIANE Nivio. Projeto de Algoritmos com Implementaes em Pascal e C. 2 ed. So Paulo: Thomson Learning, 2004. Learning 2004 LEISERSON, Charles E.; STEIN, Clifford; RIVEST, Ronald l CORMEN Th R ld l.; CORMEN, Thomas H. Al H Algoritmos:Teoria it T i e Prtica. Rio de Janeiro: Campus, 2002.
11