Repositório para estudo e prática de algoritmos e estruturas de dados utilizando Kotlin, Dart e Swift.
O projeto está em desenvolvimento contínuo, com foco em adicionar novos algoritmos, estruturas de dados e desafios em diferentes linguagens. As próximas atualizações incluirão:
- Implementação do algoritmo Insertion Sort em Dart e Kotlin.
- Implementação do algoritmo Insertion Sort em Swift.
- Desafio: Cálculo da raiz de um polinômio utilizando Briot-Ruffini em Dart e Kotlin.
- Desafio: Cálculo da raiz de um polinômio utilizando Briot-Ruffini em Swift.
- Inclusão de novas estruturas de dados: Árvores, Grafos e Pilhas.
Neste repositório você encontrará algoritmos, estruturas de dados e desafios implementados em Kotlin, Dart e em breve em Swift.
Estruturas de dados e algoritmos são uma parte essencial da programação e se enquadram nos fundamentos da ciência da computação. Compreender essas áreas nos dá a vantagem de escrever código mais eficiente e otimizado. Além disso, são tópicos fundamentais em entrevistas técnicas para desenvolvedores.
Na ciência da computação, uma estrutura de dados é um método de organização, gerenciamento e armazenamento de dados para permitir acesso e modificações eficientes. Exemplos incluem listas, filas, pilhas, árvores e grafos.
Um algoritmo é um conjunto de instruções passo a passo para resolver um problema específico ou realizar uma tarefa. Ele pode ser usado para ordenar dados, buscar elementos, realizar cálculos complexos e muito mais.
O Insertion Sort é um algoritmo de ordenação que percorre uma lista de elementos, comparando cada elemento com os anteriores e inserindo-o na posição correta. É eficaz para listas pequenas ou quase ordenadas.
- Dart - Insertion Sort
- Kotlin - Insertion Sort
- Swift - Em breve!
O método Briot-Ruffini é uma técnica para encontrar raízes de polinômios e simplificar divisões de polinômios. É especialmente útil quando se conhece pelo menos uma raiz real do polinômio.
- Dart - Briot-Ruffini
- Kotlin - Briot-Ruffini
- Swift - Em breve!
O repositório atualmente possui implementações nas seguintes linguagens:
Contribuições são bem-vindas! Se você deseja adicionar novos algoritmos, otimizar implementações existentes ou sugerir novos desafios, fique à vontade para abrir uma issue ou enviar um pull request.
- Faça um fork do projeto.
- Crie uma nova branch com a sua funcionalidade (
git checkout -b feature/nome-da-funcionalidade
). - Faça o commit das suas alterações (
git commit -m 'Adicionar nova funcionalidade'
). - Faça o push para a branch (
git push origin feature/nome-da-funcionalidade
). - Abra um Pull Request.
🌟 Deixe uma estrela se você gostou do projeto!
🍴 Sinta-se à vontade para fazer um fork e usar como base para seus estudos!
🤝 Contribua com melhorias e novos algoritmos!