Algoritmos e Complexidade

2019/2020 - 2. Semestre

Turma Prática P2


TURMA P2 (3a-feira) - SUMÁRIOS


1. Lição - 11/fevereiro/2020

Introdução à Linguagem de Programação C

Características principais

Comparação com a linguagem de programação Java

Análise, compilação e execução de exemplos simples


2. Lição - 19/fevereiro/2020

Análise da complexidade de algoritmos iterativos simples

Análise experimental

Análise formal


3. Lição - 3/março/2020

Análise experimental do desempenho de algoritmos para cálculo de uma Generalização dos Números de Fibonacci

Implementação de diferentes algoritmos: recursivo, iterativo e solução da equação de recorrência

Contagem e análise do número de multiplicações efetuadas pelos algoritmos recursivo e iterativo

Registo e análise de tempos de execução para os algoritmos implementados


4. Lição - 10/março/2020

Análise da complexidade de algoritmos iterativos

Desenvolvimento de algoritmos sobre arrays 1D

Análise experimental e formal da sua complexidade


5. Lição - 24/março/2020

Ensino a Distância

Análise da complexidade de algoritmos iterativos

Desenvolvimento de algoritmos sobre arrays 1D

Configurações que ilustram o melhor caso, o pior caso e o caso médio

Análise experimental e formal da complexidade


6. Lição - 31/março/2020

Ensino a Distância

Análise da complexidade de algoritmos recursivos

Desenvolvimento de algoritmos recursivos usando as estratégias "decrease-and-conquer" e "divide-and-conquer"

Análise experimental e formal da sua complexidade


7. Lição - 14/abril/2020

Ensino a Distância

Desenvolvimento e análise da complexidade de algoritmos recursivos e de programação dinâmica

Números de Motzkin

Transformação de um algoritmo recursivo em iterativo, usando programação dinâmica

Análise experimental e formal da complexidade


8. Lição - 21/abril/2020

Ensino a Distância

Tipos Abstratos de Dados (TADs)

Análise, desenvolvimento e teste do TAD TIME

Análise, desenvolvimento e teste do TAD DATE


9. Lição - 28/abril/2020

Ensino a Distância

Tipos Abstratos de Dados (TADs) (cont.)

Análise, desenvolvimento e teste do TAD DATETIME

Análise, desenvolvimento e teste do TAD TIMEINTERVAL

O TAD SCHEDULINGSEQUENCE

Representação usando um array

Análise de algumas funcionalidades


10. Lição - 5/maio/2020

Ensino a Distância

Tipos Abstratos de Dados (TADs) (cont.)

Análise, desenvolvimento e teste do TAD SORTEDLIST

O TAD SCHEDULINGSEQUENCE - Nova versão

Representação usando uma lista ligada ordenada - TAD SORTEDLIST

Desenvolvimento e teste


11. Lição - 19/maio/2020

Ensino a Distância

Tipos Abstratos de Dados (TADs) (cont.)

Análise, desenvolvimento e teste do TAD BSTREE

O TAD SCHEDULINGSEQUENCE - Nova versão

Representação usando uma árvore binária de procura - TAD BSTREE

Desenvolvimento e teste


12. Lição - 26/maio/2020

Ensino a Distância

Tipos Abstratos de Dados (TADs) (cont.)

O tipo abstrato de dados MIN-HEAP

Desenvolvimento e teste

Desenvolvimento de um exemplo de aplicação


13. Lição - 2/junho/2020

Ensino a Distância

O tipo abstrato de dados GRAFO

Implementação usando uma lista de vértices e listas de adjacências

Análise, desenvolvimento e teste de algumas funcionalidades


14. Lição - 9/junho/2020

Ensino a Distância

O tipo abstrato de dados GRAFO (cont.):

Continuação do desenvolvimento e teste de algumas funcionalidades


Autor: Joaquim Madeira - jmadeira@ua.pt

Data: 9 de junho de 2020