Algoritmos e Estrutura de Dados em Java
Faça já sua reserva
Esse treinamento foi montado ao longo dos 4 anos que ministramos o curso de Estrutura de Dados e Algoritmos em Java nos cursos de verão da USP.
Todos os tipos de aplicações (desktop, web, distribuída ou mobile) guardam dados para processá-los. O desempenho dessas aplicações depende muito da forma que os dados são armazenados. O conhecimento sobre as diversas estruturas de dados é de uso fundamental para o bom desenvolvedor. Esse treinamento apresenta o funcionamento interno das principais estruturas de dados e os algoritmos para manipulá-las. O foco é mostrar quais são as vantagens e desvantagens de cada estrutura e em que situações usá-las.
CS::14 - Algoritmos e Estrutura de Dados em Java (40 horas aula)
Pré-requisitos: Treinamento FJ::11 ou: linguagem Java, variáveis primitivas e orientação a objetos, tratamento de erro, conhecimentos fundamentais de Java SE.
O treinamento também aborda o framework de Collections do Java, onde há implementações semelhantes das diversas estrutura de dados apresentadas. Desta forma, o desenvolvedor apenas precisa ter o discernimento para escolher qual estrutura usar dependendo do tipo de problema que ele está resolvendo. Esse discenimento é obtido através do conhecimento mais profundo dessas estruturas.
Vamos do Vector e ArrayList até o HashSet e HashMap, passando por tópicos como equals e hashCode, comparando a performance dos algoritmos em relação ao consumo de tempo. Todas essas estruturas de dados serão implementadas do zero, de maneira similiar às que existem no java.util. Problemas comuns em que as soluções usam destas estruturas são apresentados e dicutidos. Boas práticas de OO, como o uso de interface, generics e encapsulamento, são vistas no decorrer da criação das estruturas
Conteúdo detalhado
PrefácioIntrodução
Recursão
Ordenação e pesquisa
Armazenamento Sequencial
Vetores
Listas Ligadas
Pilhas
|
Filas
Armazenamento sem repetição com busca rápida
Tabelas de Espalhamento
Armazenamento Associativo
Mapas com Lista
Mapas com Espalhamento
Visão geral da API do Java
Outras estruturas de dados |