Você está na página 1de 1

Nome do Aluno: Bernardo Meneghini Muschioni Resumo do Captulo I Projeto de Algoritimos Nivio Ziviane

Um algoritimo corresponde a uma descrio de um padro de comportamento e est intimamente ligado estrutura de dados. As formulaes concretas de algoritimos abstratos baseados em representaes e estruturas especficas de dados denominado programa. Tipo de dado uma importante caracterstica de variveis, expresses e funes, e, tem como propsito indicar qual conjunto de valores esses elementos pertencem. J um tipo abstrato de dados pode ser visto como um modelo matemtico, acompanhado de operaes definidas. Em relao medida do tempo de execuo de um programa, um algoritimo dito timo de este apresenta o menor custo possvel, sendo este o mais adequado para resolver um determinado problema. Para medir o custo de execuo de um algortimo, define-se uma funo de complexidade f. Se f(n) corresponder medida do tempo de execuo, ento a funo passa a se chamar funo de complexidade de tempo; se corresponder a uma medida de quantidade de memria, chamada de funo de complexidade de espao. A medida do custo de execuo de um algoritimo depende principalmente do tamanho de entrada dos dados. Existe ainda, trs cenrios possveis: melhor caso, pior caso e caso mdio. > Melhor caso corresponde ao menor tempo de execuo de todas as possibilidades. > Pior caso corresponde ao maior tempo de execuo de todas as possibilidades. > Caso mdio corresponde mdia dos tempos de execuo de todas as possibilidades.

Analisando o comportamento assinttico de funes, observamos que para valores suficientemente pequenos de n (tamanho do problema), qualquer algortimo custa pouco para ser executado, mesmo os ineficientes, logo, a escolha do algortimo no um problema crtico para problemas de tamanho pequeno. Mas, para valores grandes de n, estuda-se o comportamento assinttico das funes de custo, que representa o limite do comportamento do custo quando n cresce. Uma funo f(n) domina assintoticamente outra funo g(n) se existem dias constantes positivas c e m tais que, para n >= m, temos |g(n)| <= c X |f(n)|. Existem outras notaes, e cabe ressaltar as principais: O, , , o e .

A maioria dos algoritimos possuem um parmetro que afeta o tempo de execuo de forma mais significativa. As principais classes de problemas apresentam as seguintes funes de complexidades: Complexidade Constante: f(n) = O(1) Complexidade Logartmica: f(n) = O(log n) Complexidade Linear: f(n) = O(n) Complexidade Quadrtica: f(n) = O(n) Complexidade Cbica: f(n) = O(n) Complexidade Exponencial: f(n) = O(2) Complexidade Fatorial: f(n) = O(n!)

Uma anlise de algoritimos ou programas utiliza tcnicas de matemtica discreta, envolvendo contagem ou numerao dos elementos. Em determinados casos, obteremos uma equao de recorrncia para f(n). Essa equao uma maneira de exprimir uma funo por uma expresso envolvendo a mesma funo. No existe, ao certo, um conjunto completo de regras para analisar programas, mas somente alguns princpios enumerados que podem ou no ser seguidos.