Escolha o seu idioma
Curso de Algoritmos e Estrutura de Dados
Mais de 2 milhões de alunos no mundo todo

Curso de Algoritmos e Estrutura de Dados

4,4

Domine todas as principais estruturas de dados e algoritmos necessários para se destacar em entrevistas técnicas e na engenharia do mundo real. Este curso leva você de arrays e recursão até programação dinâmica, grafos e estruturas avançadas como árvores de segmento e tries. Se você está mirando empresas de alto nível ou aprimorando suas habilidades de engenharia, este é o kit completo de DSA.

Dedika para empresas

O que você vai aprender:

Você construirá uma compreensão profunda das principais estruturas de dados, incluindo arrays, listas encadeadas, árvores, heaps e tabelas hash. Você aprenderá a analisar a eficiência de algoritmos usando a notação Big-O e aplicará esse conhecimento para escrever código mais rápido e enxuto. O curso aborda algoritmos essenciais para ordenação, busca, travessia de grafos e problemas de caminho mais curto. Você dominará técnicas de programação dinâmica para resolver problemas clássicos de otimização, como mochila e distância de edição. Tópicos avançados incluem árvores de segmento, tries, union-find e projeto de algoritmos gulosos. Você também praticará estratégias para entrevistas de codificação, métodos de depuração e habilidades de comunicação de código limpo.

Como você estuda de forma prática Curso de Algoritmos e Estrutura de Dados

Como você pratica Curso de Algoritmos e Estrutura de Dados

Para si que é empresa e quer formar a equipa

Na Dedika para empresas, o curso inclui exercícios e exemplos do próprio negócio e adaptados às necessidades da sua empresa.

Clique aqui

Conteúdo do curso

8 Capítulos • 38 AulasDuração entre 4 e 360 horas (você decide)

Capítulo 1Ver detalhes

Fundamentos de Estruturas de Dados

  • Aula 1 • Introdução à Organização de Dados

    Aborda tipos de dados primitivos versus compostos e conceitos de layout de memória. Estabelece o vocabulário utilizado ao longo do curso.

  • Aula 2 • Arrays e Strings

    Examina o armazenamento contíguo em memória por meio de arrays e sequências de caracteres. Conecta a mecânica de indexação a algoritmos posteriores de busca e ordenação.

  • Aula 3 • Fundamentos de Análise de Complexidade

    Apresenta as notações Big-O, Big-Theta e Big-Omega para avaliar a eficiência. Permite que os alunos comparem operações de estruturas de dados quantitativamente.

  • Aula 4 • Pilhas e Filas

    Define padrões de acesso LIFO e FIFO e suas implementações. Demonstra casos de uso do mundo real, como análise de expressões e escalonamento.

  • Aula 5 • Fundamentos de Listas Encadeadas

    Apresenta estruturas nó-ponteiro para armazenamento dinâmico de dados. Fornece a base para entender pilhas, filas e árvores.

Capítulo 2Ver detalhes

Recursão e Decomposição de Problemas

  • Aula 1 • Algoritmos Recursivos Clássicos

    Aplica recursão a funções fatorial, Fibonacci e potência. Reforça o reconhecimento de padrões para resolução recursiva de problemas.

  • Aula 2 • Fundamentos do Pensamento Recursivo

    Estabelece casos base, casos recursivos e comportamento da pilha de chamadas. Constrói a intuição necessária antes de abordar algoritmos de árvores e grafos.

  • Aula 3 • Estratégia de Dividir e Conquistar

    Formaliza a divisão de problemas em metades independentes e a combinação dos resultados. Prepara os alunos para o merge sort e o quick sort no próximo capítulo.

  • Aula 4 • Técnicas de Backtracking

    Ensina a exploração sistemática de espaços de solução com poda. Conecta-se a problemas de satisfação de restrições e combinatórios.

Capítulo 3Ver detalhes

Algoritmos de Ordenação e Busca

  • Aula 1 • Ordenações Eficientes Baseadas em Comparação

    Implementa merge sort e quick sort usando dividir e conquistar. Analisa as diferenças de desempenho entre os casos médio e pior.

  • Aula 2 • Algoritmos de Ordenação Elementares

    Abrange bubble sort, selection sort e insertion sort com rastreamentos passo a passo. Estabelece benchmarks de complexidade de base para comparação com ordenações avançadas.

  • Aula 3 • Métodos de Ordenação sem Comparação

    Apresenta counting sort, radix sort e bucket sort para ordenação em tempo linear. Mostra quando dados de inteiros ou de intervalo limitado permitem garantias subquadráticas.

  • Aula 4 • Seleção de Algoritmo de Ordenação

    Orienta a tomada de decisão com base no tamanho, tipo e restrições de memória dos dados. Sintetiza o conteúdo do capítulo em um framework prático de seleção.

  • Aula 5 • Algoritmos de Busca

    Abrange busca linear, busca binária e busca por interpolação com análise de complexidade. Conecta a eficiência da busca à escolha da estrutura de dados.

Capítulo 4Ver detalhes

Árvores e Estruturas Hierárquicas

  • Aula 1 • Travessias em Árvores Binárias

    Implementa travessias em ordem, pré-ordem, pós-ordem e em nível. Conecta a escolha da travessia a requisitos específicos de saída, como saída ordenada.

  • Aula 2 • Árvores Binárias de Busca

    Aborda inserção, remoção e busca em BST com análise de complexidade. Demonstra como invariantes de ordenação permitem buscas eficientes.

  • Aula 3 • Heaps e Filas de Prioridade

    Constrói min-heaps e max-heaps usando representação em array e operações de heap. Conecta a estrutura do heap ao heap sort e ao escalonamento baseado em prioridade.

  • Aula 4 • BSTs Balanceadas e Árvores AVL

    Apresenta o balanceamento por altura via rotações AVL para manter garantias O(log n). Prepara os alunos para árvores rubro-negras e B-árvores em tópicos avançados.

  • Aula 5 • Terminologia e Propriedades de Árvores

    Define nós, arestas, altura, profundidade e grau em estruturas de árvore. Fornece vocabulário compartilhado para todo o conteúdo subsequente sobre árvores e grafos.

Capítulo 5Ver detalhes

Hashing e Tabelas Hash

  • Aula 1 • Operações e Análise de Tabelas Hash

    Implementa inserção, remoção e busca com análise de complexidade amortizada. Conecta garantias teóricas a decisões práticas de implementação.

  • Aula 2 • Aplicações Avançadas de Hashing

    Explora hashing consistente, filtros Bloom e casos de uso de hash criptográfico. Estende o conhecimento de tabelas hash para sistemas distribuídos e probabilísticos.

  • Aula 3 • Estratégias de Resolução de Colisão

    Compara técnicas de encadeamento e endereçamento aberto para lidar com colisões. Analisa o impacto do fator de carga no desempenho de cada estratégia.

  • Aula 4 • Projeto de Funções Hash

    Aborda os métodos de hash por divisão, multiplicação e polinomial rolling. Estabelece critérios para uma boa função hash: uniformidade e eficiência.

Capítulo 6Ver detalhes

Grafos e Algoritmos em Grafos

  • Aula 1 • Tópicos Avançados em Grafos

    Apresenta ordenação topológica, componentes fortemente conectados e conceitos básicos de fluxo em rede. Prepara os alunos para problemas de projeto de algoritmos em contextos competitivos e aplicados.

  • Aula 2 • Representação e Terminologia de Grafos

    Define grafos direcionados, não direcionados, ponderados e cíclicos com estruturas de adjacência. Estabelece as escolhas de representação que afetam a eficiência do algoritmo.

  • Aula 3 • Árvores Geradoras Mínimas

    Implementa os algoritmos de Kruskal e Prim usando union-find e filas de prioridade. Conecta conceitos de MST a aplicações de projeto de redes e agrupamento.

  • Aula 4 • Algoritmos de Travessia em Grafos

    Implementa BFS e DFS com gerenciamento explícito de fila e pilha. Aplica travessias à detecção de conectividade e identificação de ciclos.

  • Aula 5 • Algoritmos de Caminho Mínimo

    Abrange Dijkstra, Bellman-Ford e Floyd-Warshall para caminhos de origem única e entre todos os pares. Analisa condições de correção, incluindo o tratamento de arestas negativas.

Capítulo 7Ver detalhes

Programação Dinâmica

  • Aula 1 • DP em Árvores e Grafos

    Estende DP para estruturas de árvore e problemas baseados em DAG. Conecta o conhecimento de travessia de grafos a formulações de DP baseadas em espaço de estados.

  • Aula 2 • DP em Sequências e Intervalos

    Aplica DP a problemas de subsequência crescente máxima e escalonamento de intervalos. Estende o reconhecimento de padrões a otimizações com dois ponteiros e busca binária.

  • Aula 3 • Princípios de DP e Memorização

    Define subproblemas sobrepostos e subestrutura ótima como pré-requisitos para DP. Apresenta a memorização top-down como a primeira estratégia de implementação.

  • Aula 4 • Tabulação Bottom-Up

    Converte soluções memorizadas em abordagens iterativas de preenchimento de tabela. Demonstra otimização de espaço reduzindo as dimensões da tabela.

  • Aula 5 • Problemas Clássicos de DP

    Resolve problemas de subsequência comum máxima, mochila e distância de edição. Constrói uma biblioteca de padrões reutilizáveis para reconhecer tipos de problemas de DP.

Capítulo 8Ver detalhes

Estruturas de Dados Avançadas e Projeto de Algoritmos

  • Aula 1 • Estruturas Trie e de Sufixo

    Implementa árvores de prefixo para busca rápida de strings e autocomplete. Apresenta arrays de sufixos para correspondência de padrões em grandes corpora de texto.

  • Aula 2 • Árvores de Segmentos e Árvores de Fenwick

    Constrói estruturas de consulta de intervalo e atualização de ponto para operações eficientes em intervalos. Compara árvores de segmentos e árvores de Fenwick por complexidade de implementação e caso de uso.

  • Aula 3 • Análise Amortizada e Tópicos Avançados

    Aplica métodos agregado, contábil e de potencial para analisar sequências de estruturas de dados. Apresenta skip lists e estruturas autoajustáveis como alternativas avançadas.

  • Aula 4 • Union-Find e Conjuntos Disjuntos

    Implementa união por classificação e compressão de caminho para operações de tempo quase constante. Aplica union-find a conectividade dinâmica e MST de Kruskal.

  • Aula 5 • Projeto de Algoritmos Gulosos

    Formaliza a propriedade da escolha gulosa e provas de argumento de troca. Resolve problemas de seleção de atividades, codificação de Huffman e intervalos de forma gulosa.

Certificação

Seu certificado válido de conclusão

Este curso é para si:

  • Estudante de ciência da computação: buscando profundidade estruturada além do que as aulas normalmente oferecem.

  • Desenvolvedor autodidata: pronto para preencher as lacunas algorítmicas que impedem o crescimento na carreira.

  • Graduado de bootcamp: precisando dos fundamentos de CC que os programas intensivos frequentemente ignoram.

  • Engenheiro de software: se preparando para passar em triagens técnicas em empresas de tecnologia altamente competitivas.

  • Pessoa em transição de carreira: migrando para desenvolvimento de software e construindo uma base técnica rigorosa.

  • Programador competitivo: buscando sistematizar padrões de resolução de problemas para ambientes de competição cronometrados.

O que os nossos alunos dizem

As vossas aulas são perfeitas. Adquiri o pacote de um ano e, finalmente, tenho a oportunidade de acompanhar diversos temas do meu interesse sem precisar mudar de plataforma... agradeço por tudo o que fazem, já vos recomendei a outras pessoas...
Giulio Carlo
Giulio CarloAluno de Marketing Digital
Gosto de como as lições são directas ao assunto e como consigo alterar capítulos e saltar conteúdos que não preciso.
Mariana Ferres
Mariana FerresAluna de Fotografia
Gosto do conteúdo e do modo de apresentação e transcrição de vídeos, o que acelera o processo!
Luciana Alvarenga
Luciana AlvarengaAluna de Design de Unhas
A plataforma é rápida, simples de usar. A diversidade de conteúdo e os vídeos complementares ajudam muito na aprendizagem.
André Felipe
André FelipeAluno de Engenharia de Prompt

Principais capacitações

FAQ

Quem é a Dedika?

O certificado é válido em Brasil?

Os cursos são gratuitos?

Qual é a carga horária do curso?

Como são os cursos?

Como funcionam os cursos?

Qual é a duração dos cursos?

Qual é o custo ou preço dos cursos?

O que é um curso EAD ou online e como funciona?

Curso em PDF