Estrutura de Dados e Algoritmos em Python: O Guia Completo

Grafos, árvores, listas encadeadas, ordenação, pilhas, filas, deques e mais! Tudo o que você precisa saber!

Ratings: 4.61 / 5.00




Description

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. E não há problema caso você seja novo(a) na linguagem Python, pois no início do curso você pode assistir mais de 2 (duas) horas de conteúdo com o básico dessa linguagem! 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!

What You Will Learn!

  • Aprenda o básico da programação em Python
  • 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

Who Should Attend!

  • 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