Introduzir os conceitos básicos de projeto e análise de algoritmos. Apresentar algoritmos básicos de busca e ordenação.
Análise de complexidade de algoritmos; Paradigmas do projeto de algoritmos; Busca e ordenação; Transformação de Chaves (Hashing); Problemas NP-completos.
Análise de complexidade de algoritmos; Introdução aos principais paradigmas do projeto de algoritmos (recursividade, tentativa e erro, divisão e conquista, balanceamento, programação dinâmica, algoritmos gulosos, algoritmos de aproximação); Busca e ordenação em memória principal; Algoritmos de busca (linear, linear com sentinela, binária, binária rápida); Algoritmos de ordenação (por inserção, seleção, permutação, partição, heapsort, fusão); Transformação de Chaves (Hashing); Problemas NP-completos.
AHO, A. V.; HOPCROFT, J. E.; ULLMAN, J. D. Data structure and algorithms, Readings, Addison Wesley, 1982.BERZTISS, A. T. Data structures: theory and practice, New York, Academic Press, 1975.HOROWITZ, E.; SAHNI, S. Fundamentos de estrutura de dados, Rio de Janeiro, Editora Campus, 1986.WIRTH, N. Algorithms and data structures, Englewood Cliffs, Prentice Hall, 1986.TENEMBAUM, A. M. et al. Data structures using C, Englewood Cliffs, Prentice Hall, 1990.N. ZIVIANI. Projeto de Algoritmos, Thomson, 2ª edição, 2004. T. H. CORMEN; C. E. LEISERSON; R. L. RIVEST; C. STEIN. Algoritmos: Teoria e Prática, Tradução da 2a. edição americana , Editora Campus, 2002.