Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

aptsharp/Algoritmos

Open more actions menu

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

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.