- Dado um problema, como encontrarmos um algoritmo eficiente para sua
soluo? - Atendendo a um limite de complexidade.. - Como comparar um algoritmo com outros algoritmos que solucionam o mesmo problema? - Como se julga a qualidade de um algoritmo? - Qual o algoritmo de menor custo possvel para resolver um determinado problema? O que um algoritmo? - Pode ser visto como uma sequncia de aes executveis para obteno de uma soluo para um determinado tipo de problema. - Em geral, uma descrio passo a passo de como uma problema solucionvel. A descrio deve ser finita, e os passos bem definidos, sem ambiguidades, e executvel computacionalmente. Como selecionar um algoritmo quando existem vrios que solucionam o problema? - Fcil entendimento e codificao e depurao. - Faz uso eficiente dos recursos do computador. - A anlise de um algoritmo atualmente compreende dois passos: anlise prvia a qual delimita o tempo de computao do algoritmo. - Coleta de estatsticas reais sobre o algoritmo. - A complexidade do algoritmo d a ideia do esforo computacional do programa, que uma medida do nmero de operaes executadas pelo programa. Complexidade - o nmero de vezes que as instrues preponderantes so executadas. - A anlise de algoritmos est interessada no comportamento do algoritmo para grandes entradas. Essa matemtica, interessada somente em valores enormes de n chamada de assinttica. - As funes so classificadas em ordens de magnitude. - Considera-se funes no-negativas para n suficientemente grande. FAZER TABELA DE ORDEM DAS FUNES DE COMPLEXIDADE MAIS COMUNS - existe a possibilidade de duas funes de mesma ordem serem uma ozinha da outra?