O que você aprenderá
- Entenda a notação Big-O para análise e comparativo entre algoritmos
- Crie vetores não ordenados e vetores ordenados
- Construa pilhas, filas e deques
- Implemente listas encadeadas simples e listas duplamente encadeadas do zero, bem como todas as suas operações
- Entenda e implemente os conceitos de recursão
- Implemente passo a passo os principais algoritmos de ordenação: bubble sort, selection sort, insertion sort, shell sort, merge sort e quick sort
- Analise e compare o desempenho entre algoritmos de ordenação e vetores ordenados
- Implemente passo a passo árvores binárias de busca e suas operações: inserção, pesquisa e exclusão
- Crie funções recursivas para travessia de árvores: travessia em pré-ordem, em ordem e pós-ordem
- Construa grafos utilizando orientação a objetos e matrizes de adjacência
- Implemente algoritmos para percorrimento de grafos, como a busca em profundidade e a busca em largura
- Faça a busca de menores rotas em grafos utilizando os seguintes algoritmos de Inteligência Artificial: busca gulosa e busca A Estrela (A*)
- Implemente o algoritmo de Dijkstra para encontrar menores rotas
- Implemente todos os algoritmos do zero sem o uso de bibliotecas
Requisitos
- Lógica de programação, principalmente estruturas condicionais e estrutura de repetição
Descrição
Estrutura de Dados é uma área da Ciência da Computação que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidade de informações. Em outras palavras, quando você desenvolver um sistema deve pensar em quais estruturas de dados devem ser utilizadas; sendo que a escolha de determinada estrutura de dados influenciará no desempenho do software. Em outras palavras, entender sobre estrutura de dados é essencial para garantir que os algoritmos sejam eficientes, tanto em tempo de execução quanto em métricas de avaliação de desempenho.
Baseado nisso, nesse curso você vai aprender a teoria e implementará passo a passo as principais estruturas de dados existentes! Um dos diferenciais deste curso é que não usaremos bibliotecas prontas, ou seja, todas as implementações serão feitas do zero utilizando a linguagem de programação Python. Desta forma, além de entender a teoria você também terá um forte embasamento técnico sobre como implementar cada uma delas. Veja abaixo o que você vai aprender:
- Notação Big-O para análise de algoritmos
- Vetores ordenados e não ordenados
- Pilhas, filas e deques
- Listas encadeadas simples, listas encadeadas com extremidade dupla e listas duplamente encadeadas
- Recursão
- Algoritmos de ordenação: bubble sort, selection sort, insertion sort, shell sort, merge sort e quick sort
- Árvores binárias de busca
- Grafos
- Algoritmos de busca em grafos, como busca gulosa e busca A Estrela (A*) da área de Inteligência Artificial e o clássico algoritmo de Dijkstra
Todos os exemplos serão desenvolvidos passo a passo e sem pressa, para que você consiga entender perfeitamente cada implementação. Além disso, faremos debug passo a passo nos códigos para que você entenda exatamente o que cada algoritmo faz! Ao final de cada módulo você pode responder questionários teóricos para revisar a teoria, bem como exercícios práticos com soluções. Este é o curso on-line mais fácil e didático, que você aprenderá tudo o que precisa saber sobre estrutura de dados e algoritmos em Python!
Para quem é este curso
- Alunos de graduação cursando disciplinas de Estrutura de Dados ou Programação
- Pessoas interessadas em como o armazenamento nos computadores funciona
- Pessoas interessadas em linguagens de programação
- Pessoas que desejam aprender como representar problemas computacionais utilizando estrutura de dados
- Profissionais que desejam um emprego na área da computação e farão entrevistas na área
Publicado em julho de 2020
O curso é bastante completo