Disciplina
Introdução aos Algoritmos e Estruturas de Dados
Área
Área Científica de Metodologia e Tecnologias da Programação > Algoritmia
Activa nos planos curriculares
LEIC-T 2021 > LEIC-T 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados
GENI > GENI > 1º Ciclo > Área Principal > Obrigatórias > Introdução aos Algoritmos e Estruturas de Dados
LEME 2021 > LEME 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados
LETI 2021 > LETI 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados
LEIC-A 2021 > LEIC-A 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados
Min-EG 2022 > Min-EG 2022 > Inteligência Artificial e Robótica > Introdução aos Algoritmos e Estruturas de Dados
LERC 2006 > LERC 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados
LEIC-A 2006 > LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados
LEIC-T 2006 > LEIC-T 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados
Nível
50% Exame, 40% Projecto, 10% Fichas
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
105.0 h/semestre
Objectivos
Ganhar conhecimentos de programação numa linguagem imperativa. Adquirir conhecimentos sobre algoritmos básicos de ordenação e procura. Saber seleccionar, criar e utilizar estruturas de dados elementares. Saber projectar algoritmos iterativos e recursivos, para a resolução de problemas. Saber analisar a complexidade dos algoritmos utilizados para resolver um dado problema por forma a poder escolher aqueles que sejam mais eficientes.
Programa
Introdução à programação imperativa e à linguagem de programação C. Introdução ao estudo da eficiência de algoritmos. Algoritmos de ordenação elementares e avançados: inserção directa, selecção directa, bubblesort, quicksort, fusão binária e heapsort. Tipos de dados: pilhas, filas de espera, filas de prioridade, amontoados, árvores. Implementações vectoriais e dinâmicas. Árvores binárias de pesquisa. Árvores de pesquisa equilibradas. Tabelas de dispersão. Resolução de colisões por encadeamento e por endereçamento aberto. Endereçamento linear, quadrático e dispersão dupla.
Metodologia de avaliação
50% Exame, 40% Projecto, 10% Fichas
Pré-requisitos
Componente Laboratorial
Princípios Éticos
Componente de Programação e Computação
Componente de Competências Transversais
Bibliografia
Principal
Addison-Wesley Publishing Company
Brian W. Kernighan, Dennis Ritchie
T. Cormen, C. Leiserson, R. Rivest e C. Stein