Skip to content

Brincando com algoritmos abordados no livro Entendendo Algoritmos do Autor: Aditya Y. Bhargava 🧙🏻

Notifications You must be signed in to change notification settings

aptsharp/Algoritmos

Repository files navigation

Algoritmos🧙🏻

Entendendo Algoritmos é um livro excepcional do autor Aditya Y. Bhargava, sendo muito recomendado por pessoas de todos os niveis dentro do desenvolveimento, alem de ser um livro totalmente didatico com exemplos platicos e totalmente visual em seus exemplos e explicações.

Para quem quiser conhecer um pouco mais do livro:

"Entendendo Algoritmos: Um Guia Ilustrado para Programadores e Outros Curiosos" de Aditya Y. Bhargava é uma introdução prática e visual aos algoritmos de computador, projetada para ser acessível tanto para programadores quanto para leigos interessados no funcionamento interno dos computadores. Abaixo está um resumo completo do livro:

-Introdução
O livro começa com uma introdução aos algoritmos, explicando o que são e por que são importantes. Um algoritmo é definido como uma sequência de instruções passo a passo para resolver um problema. O autor destaca a importância de compreender algoritmos para escrever programas eficientes e eficazes.


-Capítulo 1: Pesquisa Binária O primeiro algoritmo abordado é a pesquisa binária. O livro explica como a pesquisa binária é usada para encontrar um item em uma lista ordenada, dividindo repetidamente a lista ao meio. Comparado com a pesquisa linear, a pesquisa binária é muito mais eficiente, especialmente para listas grandes.

-Capítulo 2: Ordenação por Seleção Este capítulo cobre a ordenação por seleção, um algoritmo simples para ordenar uma lista. O algoritmo seleciona repetidamente o menor elemento da lista e o coloca na posição correta. Embora fácil de entender, a ordenação por seleção não é a mais eficiente para listas grandes.

-Capítulo 3: Complexidade de Algoritmos Aqui, o autor introduz a análise de complexidade de algoritmos, explicando Big O notation, que é usada para descrever o desempenho e a eficiência de um algoritmo em termos de tempo e espaço. Exemplos de notações incluem O(1), O(log n), O(n), O(n log n) e O(n²).

-Capítulo 4: Recursão A recursão é um conceito fundamental em ciência da computação, onde uma função chama a si mesma para resolver um problema. O capítulo inclui exemplos clássicos como a sequência de Fibonacci e a pesquisa em árvore.

-Capítulo 5: Estruturas de Dados Básicas Este capítulo apresenta estruturas de dados fundamentais, incluindo arrays, listas encadeadas, pilhas e filas. Cada estrutura é explicada com diagramas e exemplos de código para mostrar como armazenar e manipular dados de maneira eficiente.

-Capítulo 6: Pesquisa em Largura e em Profundidade O autor aborda dois algoritmos de busca em grafos: a pesquisa em largura (BFS) e a pesquisa em profundidade (DFS). Ambos são usados para explorar grafos e árvores, mas com abordagens diferentes. O BFS usa uma fila para explorar os nós nível a nível, enquanto o DFS usa uma pilha para explorar os nós profundamente antes de retroceder.

-Capítulo 7: Algoritmos de Ordenação Diversos algoritmos de ordenação são discutidos, incluindo ordenação por inserção, ordenação rápida (quicksort) e ordenação por mesclagem (mergesort). O capítulo compara a eficiência desses algoritmos e destaca os cenários em que cada um é mais adequado.

-Capítulo 8: Tabelas de Hash As tabelas de hash são introduzidas como uma estrutura de dados eficiente para armazenar pares chave-valor. O autor explica o conceito de funções hash, colisões e técnicas de resolução de colisões, como encadeamento e endereçamento aberto.

-Capítulo 9: Algoritmos de Pesquisa de Grafos Avançados Algoritmos mais avançados de pesquisa em grafos, como o algoritmo de Dijkstra para encontrar o caminho mais curto em um grafo ponderado, são discutidos. O autor explica como esses algoritmos podem ser aplicados a problemas do mundo real, como encontrar a rota mais curta em um mapa.

-Capítulo 10: Algoritmos de Programação Dinâmica A programação dinâmica é uma técnica poderosa para resolver problemas complexos ao dividi-los em subproblemas menores e reutilizar soluções já calculadas. Exemplos incluem a solução do problema da mochila e a subsequência comum mais longa.

-Conclusão O livro conclui enfatizando a importância de praticar a implementação e o uso de algoritmos para melhorar suas habilidades de programação. O autor encoraja os leitores a continuar aprendendo e explorando algoritmos mais avançados e suas aplicações.

-Estilo e Abordagem "Entendendo Algoritmos" é conhecido por seu estilo visual, com muitas ilustrações e diagramas que tornam os conceitos abstratos mais tangíveis. A linguagem é clara e acessível, com muitos exemplos práticos e explicações passo a passo.

Em resumo, "Entendendo Algoritmos" é uma excelente introdução ao mundo dos algoritmos, combinando teoria e prática de maneira envolvente e compreensível.
--conteudo gerado no ChatGPT.

Os tópicos principais do livro são:

  • Introdução aos Algoritmos: Explica o que são algoritmos, por que são importantes e como eles são utilizados na computação.
  • Estruturas de Dados Básicas: Aborda listas, pilhas, filas e árvores, e como elas são usadas para armazenar e organizar dados.
  • Algoritmos de Ordenação e Busca: Discute algoritmos clássicos como a ordenação por bolha, seleção, inserção, mergesort, quicksort e algoritmos de busca binária.
  • Algoritmos de Grafos: Inclui uma introdução a grafos e algoritmos relacionados, como o algoritmo de Dijkstra para encontrar o caminho mais curto.
  • Algoritmos de Recursão: Explica o conceito de recursão e como é usado para resolver problemas complexos de maneira mais simples.
  • Algoritmos Avançados: Cobre temas mais avançados como algoritmos de programação dinâmica, a exemplo do problema da mochila, e técnicas de otimização.

Este livro é uma excelente escolha para quem deseja compreender melhor os fundamentos dos algoritmos e como eles se aplicam na prática.

Como esse repositorio vai funcionar

Aqui vou postar alguns codigos que será feito somente em JavaScritp se basearam nos exercicios e nos exemplos abordados no livro, mas fiz apenas para brincar e entender mais sobre cada exercicio e conceito abordado. Nada melhor que a pratica para absorver cada conceito.

Um detalhe muito importante em qualquer aprendizado é a importância de criar e fazer as coisas da sua própria mente! Estou seguindo o roteiro do livro, mas alguns algoritmos que estão nesse repositório são de minha autoria. Utilizo o ChatGPT somente para me auxiliar na construção dos algoritmos e recomendo fortemente que você, que chegou a esse repositório, faça o mesmo! Fazendo dessa forma, aprendi mais sobre a linguagem que escolhi estudar, no caso desse repositório, o JavaScript, e a estrutura de como são desenvolvidos os algoritmos e as peculiaridades da linguagem. Recomendo fortemente que faça o mesmo!!!

Quando se lê um algoritmo, se entende o que ele faz. Quando se estuda um algoritmo executando, debugando passo a passo e fazendo anotações, se aprende como ele funciona. Quando se faz um algoritmo, você transcende.

-enjoy! 🫰🏻

manufacturetocat

About

Brincando com algoritmos abordados no livro Entendendo Algoritmos do Autor: Aditya Y. Bhargava 🧙🏻

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published