Projeto desenvolvido para a disciplina de Pesquisa e Ordenação, reunindo implementações de algoritmos de ordenação em arquivos, listas encadeadas e uma visualização gráfica em JavaFX.
Este repositório reúne dois trabalhos relacionados ao estudo de algoritmos de ordenação:
- Sorting File Engine: implementação de métodos de ordenação aplicados em arquivos de registros usando
RandomAccessFile. - Linked List Sorting: implementação de métodos de ordenação utilizando lista duplamente encadeada.
- Sorting Visualization: aplicação gráfica em JavaFX para visualizar o funcionamento de algoritmos de ordenação.
O objetivo principal é comparar o comportamento dos algoritmos em diferentes estruturas de armazenamento e compreender seus custos de comparação, movimentação e execução.
✅ Geração de arquivos ordenados, reversos e randômicos
✅ Ordenação de registros armazenados em arquivo
✅ Implementação de algoritmos em lista encadeada
✅ Visualização gráfica da execução dos algoritmos
✅ Cálculo de comparações e movimentações
✅ Geração de tabela de resultados
✅ Organização modular por tipo de implementação
- Insertion Sort
- Binary Insertion Sort
- Selection Sort
- Bubble Sort
- Shake Sort
- Shell Sort
- Heap Sort
- Quick Sort com pivô
- Quick Sort sem pivô
- Merge Sort
- Counting Sort
- Bucket Sort
- Radix Sort
- Comb Sort
- Gnome Sort
- Tim Sort
- ☕ Java
- 🎨 JavaFX
- 📦 Maven
- 🔗 Listas Encadeadas
- 📂 Manipulação de Arquivos
- 📊 Estruturas de Dados
- ⚙️ Algoritmos de Ordenação
sorting-algorithms-files-and-linked-lists/
│
├── sorting-file-engine/
│ └── src/
│ ├── Arquivo.java
│ ├── Main.java
│ ├── Principal.java
│ └── Registro.java
│
├── linked-list-sorting/
│ └── src/
│ ├── Lista.java
│ ├── Main.java
│ └── No.java
│
├── sorting-visualization/
│ ├── balde/
│ │ └── balde.png
│ ├── src/main/java/
│ └── pom.xml
│
├── docs/
│ └── results/
│ └── Tabela1.txt
│
├── README.md
└── .gitignore
Durante o desenvolvimento foram aplicados conceitos importantes de Ciência da Computação:
- Estruturas de Dados
- Listas Duplamente Encadeadas
- Manipulação de Arquivos Binários
- Algoritmos de Ordenação
- Análise de Comparações e Movimentações
- Programação Orientada a Objetos
- Interface gráfica com JavaFX
- Modularização de código
O projeto compara algoritmos em diferentes cenários de entrada:
| Cenário | Descrição |
|---|---|
| Ordenado | Dados já em ordem crescente |
| Reverso | Dados em ordem decrescente |
| Randômico | Dados embaralhados |
Também são avaliados indicadores como:
- Número de comparações
- Número de movimentações
- Comportamento em arquivos
- Comportamento em listas encadeadas
Este projeto teve como objetivo praticar:
- Implementação manual de algoritmos clássicos
- Comparação entre métodos de ordenação
- Uso de arquivos como estrutura de armazenamento
- Uso de listas encadeadas
- Visualização gráfica de algoritmos
- Organização de projetos Java para portfólio
Desenvolvido por Gustavo Imada.
⭐ Caso este projeto tenha sido útil ou interessante, considere deixar uma estrela no repositório.