|
Conteúdos programáticos |
A unidade curricular aborda os seguintes conteúdos programáticos: (1) Recursividade: definição, chamadas recursivas, relações de recorrência e análise de algoritmos recursivos. (2) Análise de complexidade temporal e espacial: notação assintótica (O, T, O), análise de ciclos, casos médio e pior caso, e introdução a recorrências. (3) Algoritmos de ordenação: Bubble Sort, Insertion Sort, Selection Sort, Merge Sort e Quick Sort, com comparação de eficiência e estabilidade. (4) Estruturas de dados: vetores, vetores dinâmicos, listas ligadas simples e duplas, pilhas, filas, filas de prioridade, árvores binárias, árvores de pesquisa e representação de grafos por matriz e lista de adjacência. (5) Algoritmos de pesquisa e percursos em árvores e grafos (DFS e BFS).
|
|
Bibliografia principal |
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms (Fourth Edition), The MIT Press, 2022. Brad Miller and David Ranum. Problem Solving with Algorithms and Data Structures using Python, Luther College, 2006.
|