Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Guia Completo de Estruturas de Dados e Algoritmos para Programadores - Prof. Antônio, Esquemas de Estruturas de Dados e Algoritmos

Este guia abrangente oferece um treinamento completo em estruturas de dados e algoritmos, desde o nível básico até o avançado. Ideal para estudantes de programação, profissionais que buscam aprimorar suas habilidades e aqueles que desejam se preparar para processos seletivos na área de tecnologia. O curso aborda tópicos como strings, arrays, recursividade, complexidade de algoritmos, busca e ordenação, listas, pilhas e filas, conjuntos e dicionários, árvores e grafos. Inclui aulas gravadas, materiais de apoio, suporte individualizado, exercícios práticos e desafios com feedback, culminando em um certificado de 160 horas. O objetivo é fornecer uma base sólida para atuar profissionalmente e aumentar a confiança em processos seletivos.

Tipologia: Esquemas

2025

Compartilhado em 27/08/2025

Nara.Estrela
Nara.Estrela 🇧🇷

4 documentos

1 / 14

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Estruturas de Dados e Algoritmos Expert
Nosso guia "à prova de perdidos" sobre o treinamento :)
Objetivo:
Domine as principais estruturas de dados e técnicas de elaboração de algoritmos, desde o
básico até o avançado, e adquira a base sólida para atuar profissionalmente na área e se
sentir confiante nos processos seletivos.
Para quem é:
Estudantes de programação
Quem precisa repassar conteúdos da faculdade
Profissionais e estudantes que precisam aprofundar em estruturas de dados e
técnicas de algoritmos avançadas
Pré-requisitos:
Lógica de programação em qualquer linguagem
Conhecimento básico de orientação a objetos em qualquer linguagem
O que você vai aprender no treinamento:
Tópicos iniciais
Strings
Arrays
Recursividade
Complexidade de algoritmos
Busca e ordenação
Listas
Pilhas e filas
Conjuntos e dicionários
Árvores
Algoritmos gulosos
Grafos
Programação dinâmica
Recursos do treinamento:
Trilha de aulas gravadas (assista quantas vezes quiser)
Materiais de apoio (slides, resumos, guias passo a passo, etc.)
Suporte 1 a 1 dos instrutores (tenha suas dúvidas respondidas)
Exercícios práticos (aprenda na prática)
Desafios para entregar com correção e feedback (valide seu conhecimento)
Certificado 160h (incluindo tempo de vídeos e de estudo)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Pré-visualização parcial do texto

Baixe Guia Completo de Estruturas de Dados e Algoritmos para Programadores - Prof. Antônio e outras Esquemas em PDF para Estruturas de Dados e Algoritmos, somente na Docsity!

Estruturas de Dados e Algoritmos Expert

Nosso guia "à prova de perdidos" sobre o treinamento :)

Objetivo: Domine as principais estruturas de dados e técnicas de elaboração de algoritmos, desde o básico até o avançado, e adquira a base sólida para atuar profissionalmente na área e se sentir confiante nos processos seletivos. Para quem é: ● Estudantes de programação ● Quem precisa repassar conteúdos da faculdade ● Profissionais e estudantes que precisam aprofundar em estruturas de dados e técnicas de algoritmos avançadas Pré-requisitos: ● Lógica de programação em qualquer linguagem ● Conhecimento básico de orientação a objetos em qualquer linguagem O que você vai aprender no treinamento: ● Tópicos iniciais ● Strings ● Arrays ● Recursividade ● Complexidade de algoritmos ● Busca e ordenação ● Listas ● Pilhas e filas ● Conjuntos e dicionários ● Árvores ● Algoritmos gulosos ● Grafos ● Programação dinâmica Recursos do treinamento: ● Trilha de aulas gravadas (assista quantas vezes quiser) ● Materiais de apoio (slides, resumos, guias passo a passo, etc.) ● Suporte 1 a 1 dos instrutores (tenha suas dúvidas respondidas) ● Exercícios práticos (aprenda na prática) ● Desafios para entregar com correção e feedback (valide seu conhecimento) ● Certificado 160h (incluindo tempo de vídeos e de estudo)

SUMÁRIO

Onde eu acesso o treinamento? Quais são os canais de contato e suporte?

  1. Suporte dos professores a dúvidas sobre as aulas
  2. Suporte administrativo (matrícula, acesso, plataforma, etc.) Observações: Quem são os responsáveis pelo treinamento? Onde acesso o material de apoio? Como funciona o envio de desafios? Tem prazo para entregar os desafios? Como funciona a emissão de certificado? Em qual sequência devo estudar? Vocês vão mesmo ensinar "pegando na minha mão"? Dicas comportamentais de estudo Conteúdo curricular do treinamento (ementa) Tópicos iniciais Strings Arrays Recursividade Complexidade de algoritmos Busca e ordenação Listas Pilhas e filas Conjuntos e dicionários Árvores Grafos Algoritmos gulosos Programação dinâmica

Nelio Alves

Doutor em Engenharia de Software, mais de 360 mil alunos online. Ficou mundialmente conhecido por ser autor dos cursos online de Java e C# em Língua Portuguesa mais vendidos do mundo pela plataforma Udemy. Possui mais de 20 anos de carreira, e vasta experiência como professor e coordenador de cursos superiores, técnicos e de pós-graduação.

Onde acesso o material de apoio?

Assista a vídeo aula “Material de apoio” localizada no primeiro capítulo.

Como funciona o envio de desafios?

Na própria aula onde o desafio é apresentado, na aba “Conteúdo” haverá um formulário onde você deverá enviar o link do seu desafio. Todas orientações sobre a elaboração do desafio serão dadas na aula. Você receberá o retorno do seu desafio em 1 a 2 dias úteis.

Tem prazo para entregar os desafios?

Não. Você pode fazer o treinamento no seu tempo e também entregar os desafios no seu tempo, sem problemas. Apenas fique atento(a) ao prazo de validade do seu acesso ao treinamento, ok?

Como funciona a emissão de certificado?

O certificado é obtido por meio da entrega dos desafios com sucesso, e não somente pela mera visualização das aulas. Assim que você receber o retorno com sucesso do último desafio do treinamento, seu certificado estará disponível na seção “Meus certificados” da plataforma de ensino.

Em qual sequência devo estudar?

O treinamento foi cuidadosamente preparado para que você tenha a melhor experiência de aprendizado e a melhor didática. Basta seguir as aulas e capítulos em sequência.

Vocês vão mesmo ensinar "pegando na minha

mão"?

Vamos sim! Vamos "pegar na sua" mão por meio:

  1. das aulas gravadas e materiais de apoio, pois é tudo passo a passo, em sequência;
  2. do suporte às dúvidas;
  3. da correção de tarefas. Mas para isso funcionar o aluno também tem que PARTICIPAR das atividades do treinamento, que são elas:
  4. Assistir às aulas e fazer os exercícios.
  5. Enviar dúvidas no canal de suporte.
  6. Enviar as tarefas.
  7. Nos procurar caso tenha alguma dúvida sobre o funcionamento do treinamento. Em outras palavras: cada um, professor e aluno, tem que fazer a sua parte. Se estiver com algum problema, tome a iniciativa de entrar em contato, que te ajudamos, pois estamos aqui para isso. Este é um curso assíncrono, onde o aluno faz no seu tempo, então quem dita o ritmo do aluno aqui é o próprio aluno.

Dicas comportamentais de estudo

● Infelizmente existe uma cultura de "ensino fake", de fabricação de números, de venda de certificados. Não aceite isso para sua vida. Não seja mais uma estatística. ● Não avance para o próximo tópico sem entender e fazer os exercícios indicados com entendimento. ● Precisou olhar na solução de um exercício? Ok, mas tente refazer novamente sem olhar. ● Não tenha pressa! Não se compare com os colegas. Respeite seu ritmo e seu contexto. ● Crie um horário de estudo e siga-o. ● Não copie desafios. Receber ajudas pontuais é natural, mas cuidado para não sabotar seu aprendizado. ● Quando for ajudar alguém, não envie o projeto completo. Apenas ajude pontualmente.

Conteúdo curricular do treinamento (ementa)

Tópicos iniciais

Algoritmos e Lógica de Programação Estruturas de dados é sobre o quê

Exemplo encontrar emails em um texto Referência de expressões regulares PARTE 1 Referência de expressões regulares PARTE 2 Apresentando os exercícios Solução do problema cpf Solução alternativa do problema cpf usando for Solução do problema dominio-email Solução do problema data Solução alternativa do problema data1 usando substring Solução do problema data Solução do problema senha Solução alternativa do problema senha usando regex Solução do problema anagram (1) Solução do problema anagram (2) Solução alternativa do problema anagram usando array Solução do problema prefixo-comum Solução do problema transacoes PARTE 1 Solução do problema transacoes PARTE 2 Arrays Exercicio maximo 1s consecutivos Exercicio produto escalar dois arrays Exercicio numeros par de digitos Exercicio encontrar vendedor com maior valor de venda Exercício quadrado de um array ordenado Exercicio duplicar zeros Exercicio merge arrays Exercicio contem valores duplicados Recursividade Recursividade introdução e motivação Solução do problema soma-naturais Solução do problema fatorial Vantagens e desvantagens da recursividade Casos base e casos recursivos Pilha de chamadas Recursividade de cauda Problema fatorial com recursividade de cauda Solução ineficiente do problema fibonacci Solução fibonacci com recursividade de cauda Conceito de cabeça e cauda de uma lista Solução do problema reverse

Complexidade de algoritmos O que é complexidade de algoritmos Exemplo busca sequencial Análise da complexidade de tempo Análise da complexidade de espaço Notação assíntótica Big O, Big Omega, Big Theta Exemplo de algoritmo de ordem linear Discutindo as complexidades mais comuns Discutindo a complexidade exponencial Exemplo de algoritmo de ordem quadrática Exemplo de algoritmo de ordem cúbica Exemplo de algoritmo de complexidade exponencial Exemplo de algoritmo de coplexidade logarítmica Busca e ordenação Definição e tipos de busca Busca sequencial Busca binaria Implementacao busca binaria iterativa Implementacao busca binaria recursiva Definição e exemplos de ordenação Bubble sort Implementacao bubble sort Melhorias bubble sort e complexidade Selection sort Implementacao selection sort Insertion sort Implementacao insertion sort Merge sort Implementacao Merge sort Complexidade merge-sort Quick sort Implementando quick sort Complexidade quick sort Listas Visao geral capítulo Definicao lista encadeada e representação na memória Analogia, vantagens e desvantagens Implementacao estrutura no Adicionar elemento ao final da lista Imprimir elementos da lista

Implementação de pilha com array PARTE 2 Implementação de pilha com lista Solução do problema is-balanced Usando a pilha da própria linguagem Solução do problema valid-parentheses Solução do problema remove-duplicates Fila - definição e aplicações Operações de uma fila Implementação de fila com lista PARTE 1 Implementação de fila com lista PARTE 2 Solução do problema tickets PARTE 1 Solução do problema tickets PARTE 2 Solução do problema sandwich PARTE 1 Solução do problema sandwich PARTE 2 Conjuntos e dicionários Visão geral do capítulo Conjunto - definição e aplicações Implementações de conjunto Operações de um conjunto Testando as operações de conjunto Solução do problema visitantes Solução do problema alunos Solução do problema intersection Dicionário - definição e aplicações Implementações de dicionários Operações de um dicionário Testando operações de dicionário Solução do problema votacao Solução do problema word-count PARTE 1 Solução do problema word-count PARTE 2 Solução do problema two-sum PARTE 1 Solução do problema two-sum PARTE 2 Solução do problema transacoes PARTE 1 Solução do problema transacoes PARTE 2 Árvores Visão geral e aviso sobre conteúdo avançado Árvores - definição e aplicações Raiz, filho, pai, irmão, nós externos e internos, arestas Caminho, ancestral, descendente, subárvore, árvore binária Profundidade, nível, altura Árvores genéricas Projeto da árvore genérica

Começando a classe Node Finalizando a classe Node Convenção underline para métodos protegidos Começando GenericTree e método add Primeiro teste da árvore genérica Função validade e children atualizada Implementando o método add completo Melhorando o print e instanciando toda árvore DFS - Busca em profundidade Funções elements e positions Função find Funções isExternal, isRoot e parent Funções replace, size, isEmpty Função remove PARTE 1 Função remove PARTE 2 BFS - Busca em largura Grafos Por que estudar grafos História dos grafos Definição Grafos Conceitos Básicos - Parte 1 Conceitos Básicos - Parte 2 Conceitos Básicos - Parte 3 Resolução Exercícios - Conceitos Básicos Tipos de Grafos Resolução Exercícios - Tipos de Grafos Caminhos em Grafos - Parte 1 Caminhos em Grafos - Parte 2 Resolução Exercícios - Caminhos em Grafos - Parte 1 Resolução Exercícios - Caminhos em Grafos - Parte 2 Resolução Exercícios - Caminhos em Grafos - Parte 3 Resolução Exercícios - Caminhos em Grafos - Parte 4 Estruturas em Grafos - Parte 1 Estruturas em Grafos - Parte 2 Resolução Exercícios - Estrutura em Grafos - Parte 1 Resolução Exercícios - Estrutura em Grafos - Parte 2 Representação de Grafos em Memória - Lista de arestas Representação de Grafos em Memória - Matriz de Adjacência Implementação Matriz de Adjacência - Parte 1 Implementação Matriz de Adjacência - Parte 2 Representação de Grafos em Memória - Lista de Adjacências Implementação Lista de Adjacências - Parte 1 Implementação Lista de Adjacências - Parte 2 Resolução Exercícios - Representação de Grafos em Memória - Parte 1

Algoritmo guloso - Breve revisão e panorama Apresentação da lista de exercícios guloso Solução Garrafas Solução Scarecrow Solução Cookies Solução Maior número possível Solução Lemonade Solução Minimum rooms Solução Boats Solução Tarefas e prazos Solução Police and thieves Solução polícia e ladrão Programação dinâmica Visão geral do capítulo Por que estudar Programação Dinâmica Introdução à Programação Dinâmica Parte 1 Introdução à Programação Dinâmica Parte 2 Programação Dinâmica - Consolidando conceitos Problema do Troco - Parte 1 Problema do Troco - Parte 2 Problema Caminhos no Grid - Parte 1 Problema Caminhos no Grid - Parte 2 Problema Soma Contígua Máxima - Parte 1 Problema Soma Contígua Máxima - Parte 2 Problema Maior Subsequência Crescente - Parte 1 Problema Maior Subsequência Crescente - Parte 2 Problema Corte de Hastes - Parte 1 Problema Corte de Hastes - Parte 2 Problema Corte de Hastes - Parte 3 Problema da Mochila - Parte 1 Problema da Mochila - Parte 2 Problema da Mochila - Parte 3 Problema Maior Subsequência Comum - Parte 1 Problema Maior Subsequência Comum - Parte 2 Problema Maior Subsequência Comum - Parte 3 Problema Maior Subsequência Comum - Parte 4 Apresentação da lista de exercícios Solução do problema climbing_stairs Solução do problema mincost_climbing_stairs Solução do problema frog_jumps Solução do problema coins Solução do problema minimum_path_sum Solução do problema precious_stones Solução do problema jump_game

Solução do problema min_falling_path_sum Solução do problema house_robber