Este projeto contém scripts de algoritmos desenvolvidos em Python, baseados no livro "Entendendo os Algoritmos" de Aditya Bhargava. O projeto é ideal para iniciantes que desejam aprender e implementar os principais conceitos de algoritmos e estruturas de dados.
- algorithm/: Scripts que implementam algoritmos básicos e intermediários.
merge_sort.py
- Implementação do Merge Sort.ordenacao-por-selecao.py
- Algoritmo de Ordenação por Seleção.pilha.py
- Estrutura de dados: Pilha.lista-encadeada.py
- Estrutura de dados: Lista Encadeada.recursao.py
- Exemplos de problemas resolvidos com recursão.notacao-big-o.py
- Demonstração da Notação Big-O.quick_sort.py
- Implementação do Quick Sort.pesquisa-binaria.py
- Algoritmo de Pesquisa Binária.algoritmos.py
- Outros algoritmos e exercícios.
- book/: Recursos extras ou anotações relacionadas ao livro.
- pytest/: Scripts de testes unitários para validação dos algoritmos.
- types/: Conceitos básicos de tipagem e boas práticas em Python.
- Aprender algoritmos de forma prática e visual.
- Melhorar o raciocínio lógico através de implementações em Python.
- Entender estruturas de dados fundamentais.
- Familiarizar-se com a Notação Big-O para medir a eficiência dos algoritmos.
- Revisar conceitos como recursão e pesquisa eficiente.
Para executar os scripts, você precisa ter:
- Python 3.11 (ou superior)
- Gerenciador de pacotes pip
- IDE ou editor de código (recomendado: VSCode)
-
Clone este repositório:
git clone https://github.com/seu-usuario/algoritmos-python.git
-
Acesse o diretório:
cd algoritmos-python
-
Execute os scripts no terminal:
python algorithm/merge_sort.py
-
Para rodar os testes:
pytest pytest/
-
Algoritmos de Ordenação:
- Ordenação por Seleção
- Merge Sort
- Quick Sort
-
Pesquisa:
- Pesquisa Binária
-
Estruturas de Dados:
- Pilha
- Listas Encadeadas
-
Recursão:
- Exemplos simples e complexos
-
Eficiência dos Algoritmos:
- Notação Big-O
- 📖 Livro: "Entendendo os Algoritmos" de Aditya Bhargava.
- 🐼 Documentação Python: https://docs.python.org/3/
- 📚 pytest: https://docs.pytest.org/
Contribuições são bem-vindas! Se você deseja adicionar mais algoritmos, abra um Pull Request seguindo as boas práticas de Python.
- Fork o projeto.
- Crie uma nova branch.
- Faça suas alterações e adicione testes.
- Abra um Pull Request.