Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0608 ALGORITMOS AVANÇADOS Aula 1: Apresentação do Curso; Revisão Prof. Dr. Roney L. de S. Santos RONEY.LIRASALE@professores.estacio.br ESTA DISCIPLINA 2 • Turma 1007 • Carga Horária: 90h – 1 aula por semana: sábados das 7h30 às 11h00 • 1ª parte: 7h30 às 9h10 • 2ª parte: 9h20 às 11h00 – Bloco B, Laboratório 1 ALGORITMOS AVANÇADOS 3 • Um algoritmo é uma descrição, passo a passo, de uma metodologia que conduz à resolução de um problema ou à execução de uma tarefa • Melhor: é uma sequência finita de passos para executar uma tarefa ALGORITMOS AVANÇADOS 4 • A programação consiste na codificação precisa desse algoritmo, segundo uma linguagem de programação específica ALGORITMOS AVANÇADOS 5 • A programação consiste na codificação precisa desse algoritmo, segundo uma linguagem de programação específica ALGORITMOS AVANÇADOS 6 • A programação consiste na codificação precisa desse algoritmo, segundo uma linguagem de programação específica ALGORITMOS AVANÇADOS 7 • Há, então, que ter consideração que existem três fases distintas na elaboração de programas: 1. A análise do problema – Especificação do problema, análise de requisitos, pressupostos, etc.) 2. A concepção do algoritmo 3. A tradução desse algoritmo na linguagem de programação ESTRUTURA DE DADOS 8 • É o ramo da computação que estuda os diversos mecanismos de organização para atender os diferentes requisitos de processamento • Definem: – Organização – Métodos de acesso – Opções de processamento • Para coleções de itens de informação manipulados pelo programa DEFINIÇÕES IMPORTANTES 9 • Vetores • Matrizes • Ponteiros • Registros (Struct) • Funções DEFINIÇÕES IMPORTANTES 10 • Vetores – Arranjo cuja capacidade pode variar dinamicamente. – Se o espaço reservado for totalmente ocupado e espaço adicional for necessário, este será alocado automaticamente • o programador não precisa se preocupar com a capacidade de armazenamento ou com a ocupação até o momento • Matrizes • Ponteiros • Registros (Struct) • Funções DEFINIÇÕES IMPORTANTES 11 • Vetores • Matrizes – Coleção de elementos de mesmo tipo acessíveis com um único nome e armazenados contiguamente na memória. – A individualização de cada elemento de um vetor é feita através do uso de índices. – Os vetores são matrizes de uma só dimensão. • Ponteiros • Registros (Struct) • Funções DEFINIÇÕES IMPORTANTES 12 • Vetores • Matrizes • Ponteiros – O programador é responsável por operar explicitamente com os endereços das variáveis • Registros (Struct) • Funções DEFINIÇÕES IMPORTANTES 13 • Vetores • Matrizes • Ponteiros • Registros (Struct) – Permite agrupar dados de diferentes tipos numa mesma estrutura • Ao contrário de matrizes que possuem elementos de um mesmo tipo • Funções DEFINIÇÕES IMPORTANTES 14 • Vetores • Matrizes • Ponteiros • Registros (Struct) • Funções – Ideia básica : é encapsular um código que poderá ser invocado/chamado por qualquer outro trecho do programa – Implementada em alguma linguagem de programação E AVANÇADOS? 15 • Complexidade do algoritmo – O quão eficiente é meu algoritmo? • Recursividade – Uma função que chama a si mesma – Fatorial? • Algoritmos de Ordenação – Mergesort – Quicksort E AVANÇADOS? 16 • Algoritmos de Ordenação: Mergesort E AVANÇADOS? 17 • Algoritmos de Ordenação: Mergesort E AVANÇADOS? 18 • Algoritmos de Ordenação: Quicksort E AVANÇADOS? 19 • Árvores – Binária e AVL • Grafos OBJETIVOS DA DISCIPLINA 20 • Identificar e conhecer a complexidade do elemento da análise assintótica Notação O. • Conhecer sobre recursividade e suas definições/implementações. • Analisar a complexidade do algoritmo de ordenação por intercalação (Mergesort). OBJETIVOS DA DISCIPLINA 21 • Analisar a complexidade do algoritmo de ordenação rápida (quicksort). • Conhecer o Algoritmo em Grafos e as suas representações. • Identificar e analisar as complexidades das estruturas de dados dos tipos Árvore Binária e Árvore AVL. EMENTA 22 • Complexidade (notação O); Recursividade; Ordenações como Mergesort e Quicksort; Noção de Grafo, Árvores binárias e AVL. ESQUEMA DAS AULAS 23 • Tópicos em Slides – Disponibilizados após as aulas (em PDF) • Aulas Práticas – Ambientes de Programação • Quanto mais informal, melhor! • Anotações são bem vindas! – Caderno/bloco de notas são recomendáveis AVALIAÇÕES 24 • AV1 – Nota 1 • AV2 – Nota 2 • AV3 – Substituirá a AV1 ou AV2 • Deve-se atingir média igual ou maior que 6,0 em duas notas das três AVs (AV1, AV2 e AV3); • Deve-se obter nota superior a 4,0 em, pelo menos, duas das três AVs; • Frequentar no mínimo 75% das aulas NOTA ≥ 6: APROVADO! NOTA < 4 : REPROVADO... AVALIAÇÕES: DATAS 25 • AV1 – 29 de abril – Nova Chance AV1: 06 de maio • AV2 – 03 de junho – Nova Chance AV2: 17 de junho • AV3 – 24 de junho * Datas previstas BIBLIOGRAFIA BÁSICA 26 • Ascencio, Ana Fernanda Gomes; Araújo, Graziela Santos de. Estruturas de Dados. Algoritmos, Análise da Complexidade e Implementações em Java e C/C++. 1. ed. São Paulo: Pearson, 2013. – https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf • Drozdek, Adam. Estrutura de dados e algoritmos em C++. 4. ed. São Paulo,: Cengage Learning, 2016. – https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0 .00 • Manzano, José Augusto N. G. Algoritmos Lógica para Desenvolvimento de Programação de Computadores. 28. ed. São Paulo: Érica,, 2016.. – https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.00:0 .00 https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0.00 https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0.00 https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.00:0.00 https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.00:0.00 GRUPO DA DISCIPLINA 27 • TELEGRAM: acesse o QR Code e entre no grupo! • Principal meio de comunicação • Informação sobre as aulas, provas, cancelamentos, remarcações, alterações, etc. • Disponibilização do material da disciplina • Caso queiram entrar em contato diretamente comigo, basta mandar mensagem no privado aqui pelo Telegram! • Evitem o Whatsapp! https://t.me/+tkY-3sVu6v0wNmYx CCT0608 ALGORITMOS AVANÇADOS 28 • Dúvidas? • Fiquem à vontade para entrar em contato no RONEY.LIRASALE@professores.estacio.br Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29
Compartilhar