Skip to content

yallerocha/Estruturas-de-Dados-e-Algoritmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Estrutura de Dados e Algoritmos em Java 📚

Bem-vindo ao repositório de Estrutura de Dados e Algoritmos em Java! Este projeto tem um objetivo educacional, proporcionando recursos práticos para aqueles que estão estudando Estruturas de Dados e Algoritmos de Ordenação. Esperamos que essas implementações ajudem no aprendizado e na compreensão dos conceitos fundamentais.

Estruturas de Dados Incluídas 📋

  • Árvore AVL (AVL Tree): Uma árvore balanceada que garante operações eficientes de busca, inserção e remoção em tempo logarítmico.

  • Árvore Binária de Busca (Binary Search Tree): Uma árvore binária que permite rápida busca, inserção e remoção de elementos.

  • Tabela de Hash (Hash Table): Uma estrutura eficiente para mapear chaves a valores, proporcionando acesso rápido.

  • Heap Binário (Binary Heap): Uma implementação eficiente da fila de prioridade com propriedades interessantes.

  • Lista Encadeada (LinkedList): Uma lista flexível que permite fácil inserção e remoção de elementos.

  • Fila (Queue): Uma fila de elementos com operações de enfileirar e desenfileirar.

  • Pilha (Stack): Uma pilha de elementos com operações de empilhar e desempilhar.

Algoritmos de Ordenação Incluídos 🔄

  • Bubble Sort: Um algoritmo simples, mas menos eficiente para ordenação.

  • Counting Sort: Ideal para ordenar inteiros em um intervalo específico.

  • Insertion Sort: Eficiente para pequenas quantidades de dados ou em conjuntos quase ordenados.

  • Merge Sort: Um algoritmo de ordenação eficiente baseado na técnica de divisão e conquista.

  • Order Statistic: Encontre a estatística de ordem k em um conjunto de dados.

  • Quick Select: Selecione o k-ésimo menor elemento em tempo linear.

  • Quick Sort: Um algoritmo de ordenação rápido baseado na técnica de pivô.

  • Selection Sort: Simples e intuitivo, adequado para conjuntos de dados pequenos.

Como Contribuir 🤝

Aceitamos e incentivamos contribuições da comunidade! Se você deseja melhorar ou adicionar algo, siga estes passos:

  1. Fork o repositório.
  2. Crie uma branch para a sua contribuição (git checkout -b sua-contribuicao).
  3. Faça commit das suas mudanças (git commit -m 'Adiciona minha contribuição').
  4. Faça push para a branch (git push origin sua-contribuicao).
  5. Abra um Pull Request.

Requisitos 🛠️

Certifique-se de ter o Maven e o JUnit instalados no seu sistema para compilar, executar o código e os testes.

Licença 📜

Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.

Agradecemos por contribuir para o projeto! Se tiver dúvidas ou sugestões, sinta-se à vontade para abrir uma issue. Happy coding! 🖥️✨

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages